From 58c577843fd992ead36b7fe6cd29e7c5b99f0f23 Mon Sep 17 00:00:00 2001 From: bartjuhhh <bart.knuiman@wur.nl> Date: Wed, 28 Feb 2024 12:31:33 +0100 Subject: [PATCH] Fixes for unity 2023.3 --- .../Materials/M_beech_Tree_00_D_Cross.mat | 36 +- .../Models/Materials/M_beech_bark_02.mat | 25 +- .../Models/Materials/M_beech_leaves.mat | 30 +- .../Models/Materials/M_beech_trunk_02.mat | 32 +- .../Models/Materials/M_beech_trunk_03.mat | 32 +- .../Models/Materials/M_beech_trunk_04.mat | 32 +- Runtime/DownloadTrees.cs | 3 +- .../Foliage Shaders/NM_Bark.shader | 20739 ------------ .../Foliage Shaders/NM_Bark.shader.meta | 9 - .../Foliage Shaders/NM_Bark_Snow.shader | 22561 ------------ .../Foliage Shaders/NM_Bark_Snow.shader.meta | 9 - .../Foliage Shaders/NM_Cross.shader | 20115 ----------- .../Foliage Shaders/NM_Cross.shader.meta | 9 - .../Foliage Shaders/NM_Cross_Snow.shader | 22216 ------------ .../Foliage Shaders/NM_Cross_Snow.shader.meta | 9 - .../Foliage Shaders/NM_Foliage.shader | 26688 --------------- .../Foliage Shaders/NM_Foliage.shader.meta | 9 - .../Foliage Shaders/NM_Foliage_Snow.shader | 28234 ---------------- .../NM_Foliage_Snow.shader.meta | 9 - .../Models/Oak/Materials/Bark_Oak.mat | 6 +- .../Models/Oak/Materials/Leafs_Oak.mat | 6 +- .../Models/Pine/Materials/Bark_Pine.mat | 6 +- .../Models/Pine/Materials/Leafs_Pine.mat | 6 +- .../Global Volume Profile.asset | 82 +- Runtime/White.mat | 18 +- package.json | 6 +- 26 files changed, 245 insertions(+), 140682 deletions(-) delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader.meta delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader.meta delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader.meta delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader.meta delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader.meta delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader delete mode 100644 Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader.meta diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_Tree_00_D_Cross.mat b/Runtime/Beech Trees/Models/Materials/M_beech_Tree_00_D_Cross.mat index 6c5817c..4a2f44b 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_Tree_00_D_Cross.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_Tree_00_D_Cross.mat @@ -2,17 +2,32 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_Tree_00_D_Cross m_Shader: {fileID: 4800000, guid: 7bd9a74c0a3251f429b6131c73340f07, type: 3} - m_ShaderKeywords: _ALPHATEST_ON _DISABLE_DBUFFER _DISABLE_DECALS _DISABLE_SSR_TRANSPARENT - _MASKMAP0 _MASKMAP1 _MATERIAL_FEATURE_TRANSMISSION _NORMALMAP _NORMALMAP0 _NORMALMAP1 - _NORMALMAP_TANGENT_SPACE _NORMALMAP_TANGENT_SPACE0 _NORMALMAP_TANGENT_SPACE1 - _NORMALMAP_TANGENT_SPACE2 _NORMALMAP_TANGENT_SPACE3 + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _ALPHATEST_ON + - _DISABLE_DBUFFER + - _DISABLE_DECALS + - _DISABLE_SSR_TRANSPARENT + - _MASKMAP0 + - _MASKMAP1 + - _MATERIAL_FEATURE_TRANSMISSION + - _NORMALMAP + - _NORMALMAP0 + - _NORMALMAP1 + - _NORMALMAP_TANGENT_SPACE + - _NORMALMAP_TANGENT_SPACE0 + - _NORMALMAP_TANGENT_SPACE1 + - _NORMALMAP_TANGENT_SPACE2 + - _NORMALMAP_TANGENT_SPACE3 m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -26,6 +41,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -251,10 +267,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 1 - _SupportDecals: 0 @@ -288,7 +304,8 @@ Material: - _BaseColor: {r: 0.8490566, g: 0.8490566, b: 0.8490566, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _Color: {r: 0.8490566, g: 0.8490566, b: 0.8490566, a: 1} - - _DiffusionProfileAsset: {r: -1.8019567e-30, g: 2.8583547e+22, b: 2.0825967e+12, a: 8.838735e-11} + - _DiffusionProfileAsset: {r: -1.8019567e-30, g: 2.8583547e+22, b: 2.0825967e+12, + a: 8.838735e-11} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _DryColor: {r: 0.8018868, g: 0.7371864, b: 0.7073247, a: 1} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} @@ -307,3 +324,4 @@ Material: - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} - _VertexNormalMultiply: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_bark_02.mat b/Runtime/Beech Trees/Models/Materials/M_beech_bark_02.mat index 0517827..3092dcb 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_bark_02.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_bark_02.mat @@ -2,16 +2,25 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_bark_02 m_Shader: {fileID: 4800000, guid: 8a95675767cdff4429e1abe2778a1f30, type: 3} - m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE - _NORMALMAP_TANGENT_SPACE0 _NORMALMAP_TANGENT_SPACE1 _NORMALMAP_TANGENT_SPACE2 - _NORMALMAP_TANGENT_SPACE3 + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT + - _MASKMAP + - _NORMALMAP + - _NORMALMAP_TANGENT_SPACE + - _NORMALMAP_TANGENT_SPACE0 + - _NORMALMAP_TANGENT_SPACE1 + - _NORMALMAP_TANGENT_SPACE2 + - _NORMALMAP_TANGENT_SPACE3 m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -24,6 +33,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -550,10 +560,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 1 - _SubsurfaceMask0: 1 @@ -655,3 +665,4 @@ Material: - _UVMappingMaskBlendMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_leaves.mat b/Runtime/Beech Trees/Models/Materials/M_beech_leaves.mat index 4d079b5..5404626 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_leaves.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_leaves.mat @@ -2,16 +2,27 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_leaves m_Shader: {fileID: 4800000, guid: adce0b63bca75a84e9f786201b7d7b0b, type: 3} - m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _ALPHATEST_ON _DISABLE_DBUFFER _DISABLE_DECALS - _DISABLE_SSR_TRANSPARENT _DOUBLESIDED_ON _MASKMAP _MATERIAL_FEATURE_TRANSMISSION - _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _ALPHAPREMULTIPLY_ON + - _ALPHATEST_ON + - _DISABLE_DBUFFER + - _DISABLE_DECALS + - _DISABLE_SSR_TRANSPARENT + - _DOUBLESIDED_ON + - _MASKMAP + - _MATERIAL_FEATURE_TRANSMISSION + - _NORMALMAP + - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 1 @@ -25,6 +36,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -243,10 +255,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 0 - _SupportDBuffer: 0 @@ -283,7 +295,8 @@ Material: - _BaseColor: {r: 0.8490566, g: 0.8490566, b: 0.8490566, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _Color: {r: 0.8490566, g: 0.8490566, b: 0.8490566, a: 1} - - _DiffusionProfileAsset: {r: -1.8019567e-30, g: 2.8583547e+22, b: 2.0825967e+12, a: 8.838735e-11} + - _DiffusionProfileAsset: {r: -1.8019567e-30, g: 2.8583547e+22, b: 2.0825967e+12, + a: 8.838735e-11} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _DryColor: {r: 0.8018868, g: 0.7371864, b: 0.7073247, a: 1} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} @@ -303,3 +316,4 @@ Material: - _VertexNormalMultiply: {r: 0, g: 0, b: 0, a: 0} - _WindColorInfluence: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_02.mat b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_02.mat index dbb726c..370e42b 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_02.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_02.mat @@ -2,17 +2,31 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_trunk_02 m_Shader: {fileID: 4800000, guid: 8a95675767cdff4429e1abe2778a1f30, type: 3} - m_ShaderKeywords: _DISABLE_DBUFFER _DISABLE_SSR_TRANSPARENT _MASKMAP _MASKMAP0 - _MASKMAP1 _NORMALMAP _NORMALMAP0 _NORMALMAP1 _NORMALMAP_TANGENT_SPACE _NORMALMAP_TANGENT_SPACE0 - _NORMALMAP_TANGENT_SPACE1 _NORMALMAP_TANGENT_SPACE2 _NORMALMAP_TANGENT_SPACE3 - _REQUIRE_UV3 + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _DISABLE_DBUFFER + - _DISABLE_SSR_TRANSPARENT + - _MASKMAP + - _MASKMAP0 + - _MASKMAP1 + - _NORMALMAP + - _NORMALMAP0 + - _NORMALMAP1 + - _NORMALMAP_TANGENT_SPACE + - _NORMALMAP_TANGENT_SPACE0 + - _NORMALMAP_TANGENT_SPACE1 + - _NORMALMAP_TANGENT_SPACE2 + - _NORMALMAP_TANGENT_SPACE3 + - _REQUIRE_UV3 m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -25,6 +39,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -553,10 +568,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 1 - _SubsurfaceMask0: 1 @@ -660,3 +675,4 @@ Material: - _UVMappingMaskBlendMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_03.mat b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_03.mat index ca2575f..255c589 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_03.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_03.mat @@ -2,17 +2,31 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_trunk_03 m_Shader: {fileID: 4800000, guid: 8a95675767cdff4429e1abe2778a1f30, type: 3} - m_ShaderKeywords: _DISABLE_DBUFFER _DISABLE_SSR_TRANSPARENT _MASKMAP _MASKMAP0 - _MASKMAP1 _NORMALMAP _NORMALMAP0 _NORMALMAP1 _NORMALMAP_TANGENT_SPACE _NORMALMAP_TANGENT_SPACE0 - _NORMALMAP_TANGENT_SPACE1 _NORMALMAP_TANGENT_SPACE2 _NORMALMAP_TANGENT_SPACE3 - _REQUIRE_UV3 + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _DISABLE_DBUFFER + - _DISABLE_SSR_TRANSPARENT + - _MASKMAP + - _MASKMAP0 + - _MASKMAP1 + - _NORMALMAP + - _NORMALMAP0 + - _NORMALMAP1 + - _NORMALMAP_TANGENT_SPACE + - _NORMALMAP_TANGENT_SPACE0 + - _NORMALMAP_TANGENT_SPACE1 + - _NORMALMAP_TANGENT_SPACE2 + - _NORMALMAP_TANGENT_SPACE3 + - _REQUIRE_UV3 m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -25,6 +39,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -553,10 +568,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 1 - _SubsurfaceMask0: 1 @@ -660,3 +675,4 @@ Material: - _UVMappingMaskBlendMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_04.mat b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_04.mat index 970990b..99a90c6 100644 --- a/Runtime/Beech Trees/Models/Materials/M_beech_trunk_04.mat +++ b/Runtime/Beech Trees/Models/Materials/M_beech_trunk_04.mat @@ -2,17 +2,31 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_beech_trunk_04 m_Shader: {fileID: 4800000, guid: 8a95675767cdff4429e1abe2778a1f30, type: 3} - m_ShaderKeywords: _DISABLE_DBUFFER _DISABLE_SSR_TRANSPARENT _MASKMAP _MASKMAP0 - _MASKMAP1 _NORMALMAP _NORMALMAP0 _NORMALMAP1 _NORMALMAP_TANGENT_SPACE _NORMALMAP_TANGENT_SPACE0 - _NORMALMAP_TANGENT_SPACE1 _NORMALMAP_TANGENT_SPACE2 _NORMALMAP_TANGENT_SPACE3 - _REQUIRE_UV3 + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _DISABLE_DBUFFER + - _DISABLE_SSR_TRANSPARENT + - _MASKMAP + - _MASKMAP0 + - _MASKMAP1 + - _NORMALMAP + - _NORMALMAP0 + - _NORMALMAP1 + - _NORMALMAP_TANGENT_SPACE + - _NORMALMAP_TANGENT_SPACE0 + - _NORMALMAP_TANGENT_SPACE1 + - _NORMALMAP_TANGENT_SPACE2 + - _NORMALMAP_TANGENT_SPACE3 + - _REQUIRE_UV3 m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -25,6 +39,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -553,10 +568,10 @@ Material: - _StencilRefGBuffer: 10 - _StencilRefMV: 40 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 40 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 - _Stiffness: 1 - _SubsurfaceMask: 1 - _SubsurfaceMask0: 1 @@ -660,3 +675,4 @@ Material: - _UVMappingMaskBlendMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/DownloadTrees.cs b/Runtime/DownloadTrees.cs index c6f9fb8..1d9f0a0 100644 --- a/Runtime/DownloadTrees.cs +++ b/Runtime/DownloadTrees.cs @@ -36,7 +36,6 @@ namespace Wander public int texRes; public int type; public bool isAtEdge; - public Vector2 centre; } [Serializable] @@ -132,7 +131,7 @@ namespace Wander internal void EraseTrees() { - var terrains = FindObjectsOfType<Terrain>(); + var terrains = FindObjectsByType<Terrain>( FindObjectsInactive.Include, FindObjectsSortMode.None ); for ( int i = 0; i< terrains.Length; i++) { terrains[i].terrainData.SetTreeInstances( new TreeInstance[0], false ); diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader deleted file mode 100644 index 9e1be79..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader +++ /dev/null @@ -1,20739 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Bark" -{ - Properties - { - _TrunkBaseColor("Trunk Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_TrunkBaseColorMap("Trunk Base Map", 2D) = "white" {} - _TrunkTilingOffset("Trunk Tiling and Offset", Vector) = (1, 1, 0, 0) - [Normal][NoScaleOffset]_TrunkNormalMap("Trunk Normal Map", 2D) = "bump" {} - _TrunkNormalScale("Trunk Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_TrunkMaskMap("Trunk Mask Map MT(R) AO(G) SM(A)", 2D) = "white" {} - _TrunkMetallic("Trunk Metallic", Range(0, 1)) = 1 - _TrunkAORemapMin("Trunk AO Remap Min", Range(0, 1)) = 0 - _TrunkAORemapMax("Trunk AO Remap Max", Range(0, 1)) = 1 - _TrunkSmoothnessRemapMin("Trunk Smoothness Remap Min", Range(0, 1)) = 0 - _TrunkSmoothnessRemapMax("Trunk Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_LayerMask("Bark Blend Mask(A)", 2D) = "black" {} - _BarkBlendMaskTilingOffset("Bark Blend Mask Tiling Offset", Vector) = (1, 1, 0, 0) - _BarkBaseColor("Bark Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_BarkBaseColorMap("Bark Base Map", 2D) = "white" {} - [ToggleUI]_BarkUseUV3("Bark Use UV3", Float) = 1 - _BarkTilingOffset("Bark Tiling and Offset", Vector) = (1, 1, 0, 0) - [Normal][NoScaleOffset]_BarkNormalMap("Bark Normal Map", 2D) = "bump" {} - _BarkNormalScale("Bark Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_BarkMaskMap("Bark Mask Map MT(R) AO(G) SM(A)", 2D) = "white" {} - _BarkMetallic("Bark Metallic", Range(0, 1)) = 1 - _BarkSmoothnessRemapMin("Bark Smoothness Remap Min", Range(0, 1)) = 0 - _BarkSmoothnessRemapMax("Bark Smoothness Remap Max", Range(0, 1)) = 1 - _BarkAORemapMin("Bark AO Remap Min", Range(0, 1)) = 0 - _BarkAORemapMax("Bark AO Remap Max", Range(0, 1)) = 1 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 0 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 0 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 2 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="Geometry+225" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - surface.Alpha = 1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord1; - output.interp4.xyzw = input.texCoord2; - output.interp5.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.texCoord0 = input.interp2.xyzw; - output.texCoord1 = input.interp3.xyzw; - output.texCoord2 = input.interp4.xyzw; - output.texCoord3 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - output.interp1.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - output.texCoord3 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float3 NormalTS; - float Smoothness; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - surface.Alpha = 1; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - output.interp1.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - output.texCoord3 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - output.interp1.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - output.texCoord3 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65; - float3 _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_8fd1d379b1b3410b8c121dd2080e8406_Out_2, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1); - float _Property_084857c303b23b82b7f2702b4186fa43_Out_0 = _Drag; - float _Property_35ad336ee9b278808178baf539e0133f_Out_0 = _HeightDrag; - float _Property_476e69b3f5653a8c995133f4fccaa757_Out_0 = _Stiffness; - float _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0 = _InitialBend; - float4 _Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0 = _NewNormal; - UnityTexture2D _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_a939900eb077ee8593e638c7c457b53b_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_c460088461241a819f81fd6ab2a8fc04_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9f4dae117e65b384a057e2e17ba36791_Out_0 = WIND_SETTINGS_GustScale; - float _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0 = WIND_SETTINGS_Points; - float4 _Property_18d7723e0ed14f07992a44bbeb337673_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - float3 _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_1315b3d5dadd0f8da0c448954e846f65_ObjectSpacePosition_1, _Property_084857c303b23b82b7f2702b4186fa43_Out_0, _Property_35ad336ee9b278808178baf539e0133f_Out_0, 0, _Property_476e69b3f5653a8c995133f4fccaa757_Out_0, _Property_805aa6168fe3b08ca209d8ab0fa5d2d3_Out_0, (_Property_8e47e7fd5c1a8b88b9cf212a6f62134c_Out_0.xyz), _Property_3b8cd110cb76a68d88342e4cc1336e0b_Out_0, _Property_a939900eb077ee8593e638c7c457b53b_Out_0, _Property_f59f8f9dc8757f8ab1c1d173e09c0787_Out_0, _Property_89884359995fcf8a8d80bc0e19ce75f1_Out_0, _Property_c460088461241a819f81fd6ab2a8fc04_Out_0, _Property_0ef8268ed7d75386b8735f7baab81d22_Out_0, _Property_9f4dae117e65b384a057e2e17ba36791_Out_0, _Property_8c1472d718ff81889fbd5ee5e93e5291_Out_0, _Property_d28187fe6a414fa5b58ca9948c44abca_Out_0, _Property_18d7723e0ed14f07992a44bbeb337673_Out_0, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1, _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_normal_2); - description.Position = _WindNMNoShiver_d9bf9d182360bf8e93bf231e497089d8_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="Geometry+225" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_15346b291dcf02819b02e7f1e318f90e_Out_0, _Vector2_30576cbd50be128591cac1e9fc3e8bc7_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0 = _BarkUseUV3; - float4 _UV_6fa3089219fee9819a0b2f5861160a50_Out_0 = IN.uv3; - float4 _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0 = IN.uv0; - float4 _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3; - Unity_Branch_float4(_Property_ff19d1bd9b29a789b89dedfa7d79c552_Out_0, _UV_6fa3089219fee9819a0b2f5861160a50_Out_0, _UV_abd1a6d68d5a4d8592160ab28487fc18_Out_0, _Branch_469b76a1ba3e6782aa30674e436d8172_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_002dec3a702cc0839108460ec7882df5_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_469b76a1ba3e6782aa30674e436d8172_Out_3.xy), _Vector2_dab5fd33863b7087b4d30d7a42b40bd4_Out_0, _Vector2_002dec3a702cc0839108460ec7882df5_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_R_1 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[0]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[1]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_B_3 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[2]; - float _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4 = _Property_21cdc88cb831d086bb9afaeabf4de4cd_Out_0[3]; - float2 _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_R_1, _Split_62cf1e6443dc7884bebb6f59fa018c39_G_2); - float2 _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0 = float2(_Split_62cf1e6443dc7884bebb6f59fa018c39_B_3, _Split_62cf1e6443dc7884bebb6f59fa018c39_A_4); - float2 _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_17a7d2a57403c68ebae327601cdf0a53_Out_0, _Vector2_2cfc2cc45e03bd80903634e1e3ddf736_Out_0, _TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_3c21183e7c503681ad15665947bc36ab_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_9674c0c5cc0ee18b8a034c3707647d56_Out_0, _Vector3_5e29ab09107fad85ba1690ff5b3fc7e8_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - surface.BaseColor = (_Lerp_3709d39d028094888d4dc963f9d40358_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader.meta deleted file mode 100644 index 9893ee3..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 8a95675767cdff4429e1abe2778a1f30 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader deleted file mode 100644 index e10e436..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader +++ /dev/null @@ -1,22561 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Bark Snow" -{ - Properties - { - _TrunkBaseColor("Trunk Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_TrunkBaseColorMap("Trunk Base Map", 2D) = "white" {} - _TrunkTilingOffset("Trunk Tiling and Offset", Vector) = (1, 1, 0, 0) - [Normal][NoScaleOffset]_TrunkNormalMap("Trunk Normal Map", 2D) = "bump" {} - _TrunkNormalScale("Trunk Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_TrunkMaskMap("Trunk Mask Map MT(R) AO(G) SM(A)", 2D) = "white" {} - _TrunkMetallic("Trunk Metallic", Range(0, 1)) = 1 - _TrunkAORemapMin("Trunk AO Remap Min", Range(0, 1)) = 0 - _TrunkAORemapMax("Trunk AO Remap Max", Range(0, 1)) = 1 - _TrunkSmoothnessRemapMin("Trunk Smoothness Remap Min", Range(0, 1)) = 0 - _TrunkSmoothnessRemapMax("Trunk Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_LayerMask("Bark Blend Mask(A)", 2D) = "black" {} - _BarkBlendMaskTilingOffset("Bark Blend Mask Tiling Offset", Vector) = (1, 1, 0, 0) - _BarkBaseColor("Bark Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_BarkBaseColorMap("Bark Base Map", 2D) = "white" {} - [ToggleUI]_BarkUseUV3("Bark Use UV3", Float) = 1 - _BarkTilingOffset("Bark Tiling and Offset", Vector) = (1, 1, 0, 0) - [Normal][NoScaleOffset]_BarkNormalMap("Bark Normal Map", 2D) = "bump" {} - _BarkNormalScale("Bark Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_BarkMaskMap("Bark Mask Map MT(R) AO(G) SM(A)", 2D) = "white" {} - _BarkMetallic("Bark Metallic", Range(0, 1)) = 1 - _BarkSmoothnessRemapMin("Bark Smoothness Remap Min", Range(0, 1)) = 0 - _BarkSmoothnessRemapMax("Bark Smoothness Remap Max", Range(0, 1)) = 1 - _BarkAORemapMin("Bark AO Remap Min", Range(0, 1)) = 0 - _BarkAORemapMax("Bark AO Remap Max", Range(0, 1)) = 1 - _Snow_Amount("Snow Amount", Range(0, 2)) = 0 - _SnowBaseColor("Snow Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_SnowBaseColorMap("Snow Base Map", 2D) = "white" {} - _SnowTilingOffset("Snow Tiling Offset", Vector) = (1, 1, 0, 0) - [ToggleUI]_SnowUseUv3("Snow Use UV3", Float) = 0 - [Normal][NoScaleOffset]_SnowNormalMap("Snow Normal Map", 2D) = "bump" {} - _SnowNormalScale("Snow Normal Scale", Range(0, 8)) = 1 - _SnowBlendHardness("Snow Blend Hardness", Range(0, 8)) = 1 - [NoScaleOffset]_SnowMaskMap("Snow Mask Map MT(R) AO(G) SM(A)", 2D) = "white" {} - _SnowMetallic("Snow Metallic", Range(0, 1)) = 1 - _SnowAORemapMin("Snow AO Remap Min", Range(0, 1)) = 0 - _SnowAORemapMax("Snow AO Remap Max", Range(0, 1)) = 1 - _SnowSmoothnessRemapMin("Snow Smoothness Remap Min", Range(0, 1)) = 0 - _SnowSmoothnessRemapMax("Snow Smoothness Remap Max", Range(0, 1)) = 1 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 0 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 0 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 2 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="Geometry+225" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - surface.Alpha = 1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float3 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - float4 interp7 : INTERP7; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyz = input.normalWS; - output.interp3.xyzw = input.tangentWS; - output.interp4.xyzw = input.texCoord0; - output.interp5.xyzw = input.texCoord1; - output.interp6.xyzw = input.texCoord2; - output.interp7.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.normalWS = input.interp2.xyz; - output.tangentWS = input.interp3.xyzw; - output.texCoord0 = input.interp4.xyzw; - output.texCoord1 = input.interp5.xyzw; - output.texCoord2 = input.interp6.xyzw; - output.texCoord3 = input.interp7.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float3 NormalTS; - float Smoothness; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - surface.Alpha = 1; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.texCoord3 = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - output.texCoord3 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_478c5306e3b7451ebf37694f9df9b050_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_478c5306e3b7451ebf37694f9df9b050_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe; - float3 _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_478c5306e3b7451ebf37694f9df9b050_Out_2, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1); - float _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0 = _Drag; - float _Property_090e7879f760e0818dbad1c4ef318b73_Out_0 = _HeightDrag; - float _Property_ae9c382fa0aa98839415f68c63049bad_Out_0 = _Stiffness; - float _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0 = _InitialBend; - float4 _Property_4551e85a0f3639869d78efe4c84c5e74_Out_0 = _NewNormal; - UnityTexture2D _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_75320796dd80eb8ea2975d8d1784c262_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_159a845d3650ea8080938822df91636d_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0 = WIND_SETTINGS_GustScale; - float _Property_1c11daa906642a8a8c73fab61033854e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_9044028df69b441997a463083226cfed_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - float3 _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_8b2b40355754258c8798fe2666988cfe_ObjectSpacePosition_1, _Property_9c9eebf7adba5284afdae4bc3f8423f7_Out_0, _Property_090e7879f760e0818dbad1c4ef318b73_Out_0, 0, _Property_ae9c382fa0aa98839415f68c63049bad_Out_0, _Property_bedc8aa7645f0e8e9ed05ee24aba0085_Out_0, (_Property_4551e85a0f3639869d78efe4c84c5e74_Out_0.xyz), _Property_728cabd5ffa9828a8c8450e48f5fae94_Out_0, _Property_ef915ea9f67cc28892c00d644eeaaf4f_Out_0, _Property_75320796dd80eb8ea2975d8d1784c262_Out_0, _Property_678d43d70df600889a0f8ee5dd12c4f0_Out_0, _Property_66cc8b8b955b938ca54b813e2bfffcc7_Out_0, _Property_159a845d3650ea8080938822df91636d_Out_0, _Property_9dfcdf7948b5b982937bc5fe847887a9_Out_0, _Property_1c11daa906642a8a8c73fab61033854e_Out_0, _Property_221abe8dac0f4c7eb1ced98cf482ab0c_Out_0, _Property_9044028df69b441997a463083226cfed_Out_0, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1, _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_normal_2); - description.Position = _WindNMNoShiver_615d29a8564a8285be834da1845ae8a2_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="Geometry+225" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _TrunkBaseColor; - float4 _TrunkBaseColorMap_TexelSize; - float4 _TrunkTilingOffset; - float4 _TrunkNormalMap_TexelSize; - float _TrunkNormalScale; - float4 _TrunkMaskMap_TexelSize; - float _TrunkMetallic; - float _TrunkAORemapMin; - float _TrunkAORemapMax; - float _TrunkSmoothnessRemapMin; - float _TrunkSmoothnessRemapMax; - float4 _LayerMask_TexelSize; - float4 _BarkBlendMaskTilingOffset; - float4 _BarkBaseColor; - float4 _BarkBaseColorMap_TexelSize; - float _BarkUseUV3; - float4 _BarkTilingOffset; - float4 _BarkNormalMap_TexelSize; - float _BarkNormalScale; - float4 _BarkMaskMap_TexelSize; - float _BarkMetallic; - float _BarkSmoothnessRemapMin; - float _BarkSmoothnessRemapMax; - float _BarkAORemapMin; - float _BarkAORemapMax; - float _Snow_Amount; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowUseUv3; - float4 _SnowNormalMap_TexelSize; - float _SnowNormalScale; - float _SnowBlendHardness; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_TrunkBaseColorMap); - SAMPLER(sampler_TrunkBaseColorMap); - TEXTURE2D(_TrunkNormalMap); - SAMPLER(sampler_TrunkNormalMap); - TEXTURE2D(_TrunkMaskMap); - SAMPLER(sampler_TrunkMaskMap); - TEXTURE2D(_LayerMask); - SAMPLER(sampler_LayerMask); - TEXTURE2D(_BarkBaseColorMap); - SAMPLER(sampler_BarkBaseColorMap); - TEXTURE2D(_BarkNormalMap); - SAMPLER(sampler_BarkNormalMap); - TEXTURE2D(_BarkMaskMap); - SAMPLER(sampler_BarkMaskMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowNormalMap); - SAMPLER(sampler_SnowNormalMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 WorldSpaceTangent; - float3 WorldSpaceBiTangent; - float4 uv0; - float4 uv3; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Metallic; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkBaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TrunkTilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_3971563667d7268497d8960193b1ae41_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5bc1e535a4063b85affa16f593c8b112_Out_0, _Vector2_3971563667d7268497d8960193b1ae41_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_41859d117584758eb8002ecc938f9bce_Out_0 = _TrunkBaseColor; - float4 _Multiply_4d0f82599060228a9092027fd43912c8_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Property_41859d117584758eb8002ecc938f9bce_Out_0, _Multiply_4d0f82599060228a9092027fd43912c8_Out_2); - UnityTexture2D _Property_f0e70a431fc2958d9010b03283beee34_Out_0 = UnityBuildTexture2DStructNoScale(_BarkBaseColorMap); - float _Property_cc4d0047fc988d8d9e7554694947122a_Out_0 = _BarkUseUV3; - float4 _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0 = IN.uv3; - float4 _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0 = IN.uv0; - float4 _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3; - Unity_Branch_float4(_Property_cc4d0047fc988d8d9e7554694947122a_Out_0, _UV_4004af2c0bb1d8818bc68a4a4aa8e5ae_Out_0, _UV_b27996583ce6b58daa81ccfb6048eeef_Out_0, _Branch_4b79bd338c745781bc3d2157995cd55f_Out_3); - float4 _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0 = _BarkTilingOffset; - float _Split_ee975774554f6480b33168eff36d8be7_R_1 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[0]; - float _Split_ee975774554f6480b33168eff36d8be7_G_2 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[1]; - float _Split_ee975774554f6480b33168eff36d8be7_B_3 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[2]; - float _Split_ee975774554f6480b33168eff36d8be7_A_4 = _Property_505b745e4ff42080ba6edcadb9575a6a_Out_0[3]; - float2 _Vector2_40bf5df163b437818e7d834437986f39_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_R_1, _Split_ee975774554f6480b33168eff36d8be7_G_2); - float2 _Vector2_38b00e946a57c38590732ede4c46239e_Out_0 = float2(_Split_ee975774554f6480b33168eff36d8be7_B_3, _Split_ee975774554f6480b33168eff36d8be7_A_4); - float2 _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3; - Unity_TilingAndOffset_float((_Branch_4b79bd338c745781bc3d2157995cd55f_Out_3.xy), _Vector2_40bf5df163b437818e7d834437986f39_Out_0, _Vector2_38b00e946a57c38590732ede4c46239e_Out_0, _TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3); - float4 _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0 = SAMPLE_TEXTURE2D(_Property_f0e70a431fc2958d9010b03283beee34_Out_0.tex, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.samplerstate, _Property_f0e70a431fc2958d9010b03283beee34_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_R_4 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.r; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_G_5 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.g; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_B_6 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.b; - float _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_A_7 = _SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0.a; - float4 _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0 = _BarkBaseColor; - float4 _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_cb5d91dbbbcaf481a59e34fbfc512d33_RGBA_0, _Property_913f955d98f27d8eae1e9aa2594d6903_Out_0, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2); - UnityTexture2D _Property_e4f36987ce299e8594a2a5fccce28358_Out_0 = UnityBuildTexture2DStructNoScale(_LayerMask); - float4 _Property_8182aa612127078f8a41267832992810_Out_0 = _BarkBlendMaskTilingOffset; - float _Split_775fa2de2b5f7884aeff56995ef908b0_R_1 = _Property_8182aa612127078f8a41267832992810_Out_0[0]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_G_2 = _Property_8182aa612127078f8a41267832992810_Out_0[1]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_B_3 = _Property_8182aa612127078f8a41267832992810_Out_0[2]; - float _Split_775fa2de2b5f7884aeff56995ef908b0_A_4 = _Property_8182aa612127078f8a41267832992810_Out_0[3]; - float2 _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_R_1, _Split_775fa2de2b5f7884aeff56995ef908b0_G_2); - float2 _Vector2_db1e3d883f508980bf8946856d80750e_Out_0 = float2(_Split_775fa2de2b5f7884aeff56995ef908b0_B_3, _Split_775fa2de2b5f7884aeff56995ef908b0_A_4); - float2 _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_0d3b9a4d418cef8db62e0dd7ff4f86b7_Out_0, _Vector2_db1e3d883f508980bf8946856d80750e_Out_0, _TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3); - float4 _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0 = SAMPLE_TEXTURE2D(_Property_e4f36987ce299e8594a2a5fccce28358_Out_0.tex, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.samplerstate, _Property_e4f36987ce299e8594a2a5fccce28358_Out_0.GetTransformedUV(_TilingAndOffset_1e201d235a4bc78287cf621e6e8ae456_Out_3)); - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_R_4 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.r; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_G_5 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.g; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_B_6 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.b; - float _SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7 = _SampleTexture2D_ac5550b56f005784b219743fdaf08340_RGBA_0.a; - float4 _Lerp_3709d39d028094888d4dc963f9d40358_Out_3; - Unity_Lerp_float4(_Multiply_4d0f82599060228a9092027fd43912c8_Out_2, _Multiply_98c5efd706ed988babc5c29fc647d990_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxxx), _Lerp_3709d39d028094888d4dc963f9d40358_Out_3); - UnityTexture2D _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float _Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0 = _SnowUseUv3; - float4 _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0 = IN.uv3; - float4 _UV_546221d525945f82b74e57a70c1f11df_Out_0 = IN.uv0; - float4 _Branch_51a3344453a20e8b967c337df726d6aa_Out_3; - Unity_Branch_float4(_Property_162708fdf26bb986a9d5db43afc4f8e1_Out_0, _UV_ae30caff292d1a8484b1c12a4cb595a7_Out_0, _UV_546221d525945f82b74e57a70c1f11df_Out_0, _Branch_51a3344453a20e8b967c337df726d6aa_Out_3); - float4 _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0 = _SnowTilingOffset; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[0]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[1]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[2]; - float _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4 = _Property_256beda96caf2d8aa05d3de41fc08d3d_Out_0[3]; - float2 _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_R_1, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_G_2); - float2 _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0 = float2(_Split_6e703ef4c043ee8fb7da5f4e0bd62185_B_3, _Split_6e703ef4c043ee8fb7da5f4e0bd62185_A_4); - float2 _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3; - Unity_TilingAndOffset_float((_Branch_51a3344453a20e8b967c337df726d6aa_Out_3.xy), _Vector2_3bffc1757191f48bb09e49c12fe188ff_Out_0, _Vector2_8731dd6a02b76580a0d38aec290acc51_Out_0, _TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3); - float4 _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.tex, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.samplerstate, _Property_a155ddc33ed90685a5ab0edcf158a343_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_R_4 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.r; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_G_5 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.g; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_B_6 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.b; - float _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_A_7 = _SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0.a; - float4 _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0 = _SnowBaseColor; - float4 _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_a873ea741cb7e28f93b0a85d3c58105e_RGBA_0, _Property_c3be5593fd661b8dafbd04f26b8ec9ac_Out_0, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2); - float _Property_28052b023ac35c8e9a95b30327681cc5_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkNormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _TrunkNormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0 = UnityBuildTexture2DStructNoScale(_BarkNormalMap); - float4 _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0 = SAMPLE_TEXTURE2D(_Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.tex, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.samplerstate, _Property_30f2c188c6b1e688ae667a89dbd70992_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0); - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_R_4 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.r; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_G_5 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.g; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_B_6 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.b; - float _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_A_7 = _SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.a; - float _Property_13b1e8709820828195ef548d1d72ea04_Out_0 = _BarkNormalScale; - float3 _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_7d19dd1bd9502e84949a089f346db00b_RGBA_0.xyz), _Property_13b1e8709820828195ef548d1d72ea04_Out_0, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2); - float3 _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3; - Unity_Lerp_float3(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _NormalStrength_61e15bbaec29ca8098158de814ef56cb_Out_2, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3); - UnityTexture2D _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0 = UnityBuildTexture2DStructNoScale(_SnowNormalMap); - float4 _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.tex, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.samplerstate, _Property_d7e9139e0ac6718b89c610009c28a25a_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0); - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_R_4 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.r; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_G_5 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.g; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_B_6 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.b; - float _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_A_7 = _SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.a; - float _Property_4879e96694aee98c9d4ecd329a571123_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_4879e96694aee98c9d4ecd329a571123_Out_0, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2); - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_R_1 = IN.WorldSpaceNormal[0]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2 = IN.WorldSpaceNormal[1]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_B_3 = IN.WorldSpaceNormal[2]; - float _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_A_4 = 0; - float _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_8ff22a6bdd437780ac7ea5963e1c5bb4_G_2, _Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2); - float _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1; - Unity_Saturate_float(_Multiply_d6f3d2e32a2f8782b98e56d7da7843b7_Out_2, _Saturate_3d24ab07bcbec88bad040a185378e918_Out_1); - float3 _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_5f8448026c33d88cb71c30857efdab7b_Out_2, (_Saturate_3d24ab07bcbec88bad040a185378e918_Out_1.xxx), _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3); - float3x3 Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal)); - float3 _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1 = normalize(mul(Transform_7365d1fe4502da8f9502f86a4f80b392_transposeTangent, _Lerp_05179f1a9a06b084b2d83e8bce908cce_Out_3.xyz).xyz); - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_R_1 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[0]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[1]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_B_3 = _Transform_7365d1fe4502da8f9502f86a4f80b392_Out_1[2]; - float _Split_44ee9f8d0d54618cabce22ec49a8e7d3_A_4 = 0; - float _Multiply_44cb0179f0682a838926edb845081796_Out_2; - Unity_Multiply_float_float(_Property_28052b023ac35c8e9a95b30327681cc5_Out_0, _Split_44ee9f8d0d54618cabce22ec49a8e7d3_G_2, _Multiply_44cb0179f0682a838926edb845081796_Out_2); - float _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3; - Unity_Clamp_float(_Multiply_44cb0179f0682a838926edb845081796_Out_2, 0, 1, _Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3); - float _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1; - Unity_Saturate_float(_Clamp_dc5b76cef29f7c8e8f7a94e3a9691c56_Out_3, _Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1); - float4 _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3; - Unity_Lerp_float4(_Lerp_3709d39d028094888d4dc963f9d40358_Out_3, _Multiply_b08794693505bd8e8c04b9ba1610d394_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxxx), _Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_TrunkMaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_bbb7f63dc018f9828732f80495a95444_Out_0 = _TrunkMetallic; - float _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4, _Property_bbb7f63dc018f9828732f80495a95444_Out_0, _Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _TrunkAORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _TrunkAORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _TrunkSmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _TrunkSmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float3 _Vector3_b32a9e56b67be0819760db51785eb22f_Out_0 = float3(_Multiply_ee089bb3595c0c8da7ca2ff054def6d5_Out_2, _Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0 = UnityBuildTexture2DStructNoScale(_BarkMaskMap); - float4 _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0 = SAMPLE_TEXTURE2D(_Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.tex, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.samplerstate, _Property_41d7b60d37a127849d09e1dd2734aaec_Out_0.GetTransformedUV(_TilingAndOffset_b229fd06304b7c8f9f70f8c34b899992_Out_3)); - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.r; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.g; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_B_6 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.b; - float _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7 = _SampleTexture2D_aa594744064ae38b98eeb70ae1062378_RGBA_0.a; - float _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0 = _BarkMetallic; - float _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_R_4, _Property_da25d24e4fd2108fa3e2cae8cf268ad1_Out_0, _Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2); - float _Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0 = _BarkAORemapMin; - float _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0 = _BarkAORemapMax; - float2 _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0 = float2(_Property_02bd8e6a672d1f8ebd2c50b4d822d29c_Out_0, _Property_7c7a0acfa72e4a8d9e89fd92eb4fde51_Out_0); - float _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_G_5, float2 (0, 1), _Vector2_61efe41bd1ca5283ae09f418d56dce98_Out_0, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3); - float _Property_e93e026149f1bb888d5c7f055f55d34c_Out_0 = _BarkSmoothnessRemapMin; - float _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0 = _BarkSmoothnessRemapMax; - float2 _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0 = float2(_Property_e93e026149f1bb888d5c7f055f55d34c_Out_0, _Property_9e1d05a5f3bb4687bd2a9ef8e632a88c_Out_0); - float _Remap_098b362070432e8e9aa6ed165b86b141_Out_3; - Unity_Remap_float(_SampleTexture2D_aa594744064ae38b98eeb70ae1062378_A_7, float2 (0, 1), _Vector2_d434b3a98fac8f88a713affdbe931846_Out_0, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0 = float3(_Multiply_1a54c23c25172e89acacc2ea32718ab1_Out_2, _Remap_09fcf6edbba96e8daee966084ddc87eb_Out_3, _Remap_098b362070432e8e9aa6ed165b86b141_Out_3); - float3 _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3; - Unity_Lerp_float3(_Vector3_b32a9e56b67be0819760db51785eb22f_Out_0, _Vector3_20e5b5346a30c7898089b7fa1665dfc5_Out_0, (_SampleTexture2D_ac5550b56f005784b219743fdaf08340_A_7.xxx), _Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3); - UnityTexture2D _Property_3702de305e11e085a40d7731b582d541_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0 = SAMPLE_TEXTURE2D(_Property_3702de305e11e085a40d7731b582d541_Out_0.tex, _Property_3702de305e11e085a40d7731b582d541_Out_0.samplerstate, _Property_3702de305e11e085a40d7731b582d541_Out_0.GetTransformedUV(_TilingAndOffset_baf582e44defed89a258e1a676961fa9_Out_3)); - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.r; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.g; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_B_6 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.b; - float _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7 = _SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_RGBA_0.a; - float _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0 = _SnowMetallic; - float _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_R_4, _Property_0187ddd5583a3d86a3c4c2444b45e777_Out_0, _Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2); - float _Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0 = _SnowAORemapMin; - float _Property_506cf024c6db098fbc150277952a7bee_Out_0 = _SnowAORemapMax; - float2 _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0 = float2(_Property_5cc07bc49e1bf582b5c1b52606eec56f_Out_0, _Property_506cf024c6db098fbc150277952a7bee_Out_0); - float _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_G_5, float2 (0, 1), _Vector2_ffa116a725445282a83acc70377ff4e1_Out_0, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3); - float _Property_36782180ac25b489baf611efb6d0d9ed_Out_0 = _SnowSmoothnessRemapMin; - float _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0 = float2(_Property_36782180ac25b489baf611efb6d0d9ed_Out_0, _Property_6c0666df4add418b8e32b0e4275b1c27_Out_0); - float _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3; - Unity_Remap_float(_SampleTexture2D_e8d97bcdd6701c8e8ccd53af61c1c7b1_A_7, float2 (0, 1), _Vector2_b0c047c56338e78abcd740717a8d6900_Out_0, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0 = float3(_Multiply_0248a4a17e4abe868ff7c5ec2a5c8d2f_Out_2, _Remap_02e4c7480ddeca88aa886be18ce15353_Out_3, _Remap_1f96cc6fc648098f8cb49680f75d5a1e_Out_3); - float3 _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3; - Unity_Lerp_float3(_Lerp_9ead17ba6612748da79c34b12c2f6456_Out_3, _Vector3_75398be77c0fdd869b1d534a4a108726_Out_0, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3); - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[0]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[1]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3 = _Lerp_48cc6a544b837c85a967cc83aab4e3fb_Out_3[2]; - float _Split_645358fc1f0e278fbfc2ccb5594c95e3_A_4 = 0; - float _Property_16c4ac023c82618b9a5117de14716c25_Out_0 = _SnowNormalScale; - float3 _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_4d3b6497a9649584b1cf622f754334a5_RGBA_0.xyz), _Property_16c4ac023c82618b9a5117de14716c25_Out_0, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2); - float3 _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - Unity_Lerp_float3(_Lerp_e125e5fa3b55528f9c93b66cf30f25d3_Out_3, _NormalStrength_76b1f6b709c2558a897aa152a50733b3_Out_2, (_Saturate_269cfab86e2abe83819a3afa7b3eeda2_Out_1.xxx), _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3); - surface.BaseColor = (_Lerp_562b79f1df34b88e9a8a7431d434b435_Out_3.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = 1; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_645358fc1f0e278fbfc2ccb5594c95e3_B_3; - surface.Occlusion = _Split_645358fc1f0e278fbfc2ccb5594c95e3_G_2; - surface.NormalTS = _Lerp_337d63ad6393ae88af4c89b066722a45_Out_3; - surface.Metallic = _Split_645358fc1f0e278fbfc2ccb5594c95e3_R_1; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.uv0 = input.texCoord0; - output.uv3 = input.texCoord3; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.metallic = surfaceDescription.Metallic; - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader.meta deleted file mode 100644 index efc91b1..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Bark_Snow.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 884f1e3105fcf464ba0777c21843809e -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader deleted file mode 100644 index f7a0656..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader +++ /dev/null @@ -1,20115 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Cross" -{ - Properties - { - _AlphaCutoff("Alpha Cutoff", Float) = 0.5 - _AlphaShadowThreshold("Alpha Shadow Threshold", Float) = 0.5 - [NoScaleOffset]_BaseColorMap("Base Map", 2D) = "white" {} - _TilingOffset("Tiling and Offset", Vector) = (1, 1, 0, 0) - _HealthyColor("Healthy Color", Color) = (1, 1, 1, 0) - _DryColor("Dry Color", Color) = (0.8196079, 0.8196079, 0.8196079, 0) - _ColorNoiseSpread("Color Noise Spread", Float) = 2 - [Normal][NoScaleOffset]_NormalMap("Normal Map", 2D) = "bump" {} - _NormalScale("Normal Scale", Range(0, 8)) = 1 - _AORemapMax("AO Remap Max", Range(0, 1)) = 1 - _SmoothnessRemapMax("Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_ThicknessMap("Thickness Map", 2D) = "white" {} - _Thickness("Thickness", Range(0, 1)) = 0.3 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _WindNormalInfluence("Wind Normal Influence", Float) = 0 - _VertexNormalMultiply("Wind Vertex Normal Multiply", Vector) = (0, 0, 0, 0) - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [HideInInspector]_DiffusionProfileHash("Float", Float) = 0 - [HideInInspector]_DiffusionProfileAsset("Vector4", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 1 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 1 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 1 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyzw = input.texCoord0; - output.interp3.xyzw = input.texCoord1; - output.interp4.xyzw = input.texCoord2; - output.interp5.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.texCoord0 = input.interp2.xyzw; - output.texCoord1 = input.interp3.xyzw; - output.texCoord2 = input.interp4.xyzw; - output.texCoord3 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.texCoord0 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float3 NormalTS; - float Smoothness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.texCoord0 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.texCoord0 = input.interp1.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c; - float3 _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_4f533b4b56e24fa3bf9a7c313fecd9a5_Out_2, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1); - float _Property_552632c678b154818614af6d383ced0e_Out_0 = _Drag; - float _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0 = _HeightDrag; - float _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0 = _Stiffness; - float _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0 = _InitialBend; - float4 _Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0 = _NewNormal; - UnityTexture2D _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_6a9caa086693888a95885275a31d7a41_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_6e559a222fb80182b3c69c506d83679d_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0 = WIND_SETTINGS_GustScale; - float _Property_502106eb93f352878b2a8b75f9671ca3_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c4921bd62a064caea134985f88f6f269_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_5831a26ad29e32819b703cc40a349189; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_5831a26ad29e32819b703cc40a349189.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - float3 _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_f67c4bc654835387ab7ada1dd630aa9c_ObjectSpacePosition_1, _Property_552632c678b154818614af6d383ced0e_Out_0, _Property_4d9cc59e772b848dadcfa38efc4d88b7_Out_0, 0, _Property_5d382b46ca23dd849be86ebb47a7c0bb_Out_0, _Property_dcad818e2ad0c58b811b06fe7d77abb9_Out_0, (_Property_059fd38b073cfc899ebb9fdfb49a2189_Out_0.xyz), _Property_fda59b6e219fc68e939ebe2db34bdbd4_Out_0, _Property_6a9caa086693888a95885275a31d7a41_Out_0, _Property_6e559a222fb80182b3c69c506d83679d_Out_0, _Property_a3911d20c6473085ac593ba8f29cae6e_Out_0, _Property_24ba9fbd1499d98787c606f061aa9f02_Out_0, _Property_a1e4842bf78ec988978b5bf7ef1ba81c_Out_0, _Property_d03ba45bec02aa8a9e1b45b58c293113_Out_0, _Property_502106eb93f352878b2a8b75f9671ca3_Out_0, _Property_5fcfba7e298447a1a359d7957755ce8c_Out_0, _Property_c4921bd62a064caea134985f88f6f269_Out_0, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1, _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_normal_2); - description.Position = _WindNMNoShiver_5831a26ad29e32819b703cc40a349189_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_TEXCOORD0 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TEXCOORD0 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float _WindNormalInfluence; - float4 _VertexNormalMultiply; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - SAMPLER(SamplerState_Linear_Repeat_Aniso8); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_83b2ea7a32ab548fb8c20dce14204561_Out_0, _Vector2_188e122ac0c7888f9f5fbde73f9edd75_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_99caf98864a9e980997a02cedd282dd0_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_99caf98864a9e980997a02cedd282dd0_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_99caf98864a9e980997a02cedd282dd0_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_99caf98864a9e980997a02cedd282dd0_A_4 = 0; - float2 _Vector2_ddc95fa04fb4858daf984190322978b9_Out_0 = float2(_Split_99caf98864a9e980997a02cedd282dd0_R_1, _Split_99caf98864a9e980997a02cedd282dd0_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_ddc95fa04fb4858daf984190322978b9_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0 = _AlphaShadowThreshold; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_993f47501beb8286b10e988cd4c7e220_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0 = SAMPLE_TEXTURE2D(_Property_993f47501beb8286b10e988cd4c7e220_Out_0.tex, UnityBuildSamplerStateStruct(SamplerState_Linear_Repeat_Aniso8).samplerstate, _Property_993f47501beb8286b10e988cd4c7e220_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_R_4 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.r; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_G_5 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.g; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_B_6 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.b; - float _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7 = _SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d39fcf91fd1cab8c8ced62e9568e9bc4_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2); - surface.BaseColor = (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz); - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_4b59dc86107847d5b565cde1e47efb8f_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Property_0edea7916ed7a189a62b0faf2c274601_Out_0; - surface.Occlusion = _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_aed8020082acc482b9303a61b01a1a1a_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader.meta deleted file mode 100644 index 6118c53..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 7bd9a74c0a3251f429b6131c73340f07 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader deleted file mode 100644 index f5c7e9c..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader +++ /dev/null @@ -1,22216 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Cross Snow" -{ - Properties - { - _AlphaCutoff("Alpha Cutoff", Float) = 0.5 - _AlphaShadowThreshold("Alpha Shadow Threshold", Float) = 0.5 - [NoScaleOffset]_BaseColorMap("Base Map", 2D) = "white" {} - _TilingOffset("Tiling and Offset", Vector) = (1, 1, 0, 0) - _HealthyColor("Healthy Color", Color) = (1, 1, 1, 0) - _DryColor("Dry Color", Color) = (0.8196079, 0.8196079, 0.8196079, 0) - _ColorNoiseSpread("Color Noise Spread", Float) = 2 - [Normal][NoScaleOffset]_NormalMap("Normal Map", 2D) = "bump" {} - _NormalScale("Normal Scale", Range(0, 8)) = 1 - _AORemapMax("AO Remap Max", Range(0, 1)) = 1 - _SmoothnessRemapMax("Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_ThicknessMap("Thickness Map", 2D) = "white" {} - _Thickness("Thickness", Range(0, 1)) = 0.3 - _Snow_Amount("Snow Amount", Range(0, 2)) = 0 - _SnowBaseColor("Snow Base Color", Color) = (1, 1, 1, 0) - _SnowColorAdjustment("Snow Color Adjustment", Vector) = (1, 1, 1, 0) - [NoScaleOffset]_SnowMaskA("Snow Mask(A)", 2D) = "black" {} - _SnowMaskTreshold("Snow Mask Treshold", Range(0.1, 15)) = 4 - [ToggleUI]_InvertSnowMask("Invert Snow Mask", Float) = 0 - [NoScaleOffset]_SnowBaseColorMap("Snow Base Map", 2D) = "white" {} - _SnowTilingOffset("Snow Tiling Offset", Vector) = (1, 1, 0, 0) - _SnowBlendHardness("Snow Blend Hardness", Range(0, 8)) = 1 - _SnowAORemapMax("Snow AO Remap Max", Range(0, 1)) = 1 - _SnowSmoothnessRemapMax("Snow Smoothness Remap Max", Range(0, 1)) = 1 - _SnowThickness("Snow Thickness", Range(0, 1)) = 0.3 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [HideInInspector]_DiffusionProfileHash("Float", Float) = 0 - [HideInInspector]_DiffusionProfileAsset("Vector4", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 1 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 1 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 1 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float3 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - float4 interp7 : INTERP7; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyz = input.normalWS; - output.interp3.xyzw = input.tangentWS; - output.interp4.xyzw = input.texCoord0; - output.interp5.xyzw = input.texCoord1; - output.interp6.xyzw = input.texCoord2; - output.interp7.xyzw = input.texCoord3; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.normalWS = input.interp2.xyz; - output.tangentWS = input.interp3.xyzw; - output.texCoord0 = input.interp4.xyzw; - output.texCoord1 = input.interp5.xyzw; - output.texCoord2 = input.interp6.xyzw; - output.texCoord3 = input.interp7.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float3 NormalTS; - float Smoothness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float - { - }; - - void SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float IN, out float3 direction_1, out float strength_2) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_a72856f64732461f9c308d03c9df6e06_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_a72856f64732461f9c308d03c9df6e06_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_Comparison_Equal_float(float A, float B, out float Out) - { - Out = A == B ? 1 : 0; - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_0617b0bd42fc46ff90b1d55303a5477f, float4 Vector4_b44806ec67ca461fbcdf009dc6092cc3, Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float IN, out float3 vertex_1, out float3 normal_2) - { - float4 _Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_e3860e53bada42a3ab41609e093dcd30_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_991bdf9badea4b2bb70edc71a7338c1d_Out_0.xyz).xyz)); - float _Distance_343883e4e5444664abed46100940f24f_Out_2; - Unity_Distance_float3(_Transform_e3860e53bada42a3ab41609e093dcd30_Out_1, float3(0, 0, 0), _Distance_343883e4e5444664abed46100940f24f_Out_2); - float _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2; - Unity_Comparison_Less_float(_Distance_343883e4e5444664abed46100940f24f_Out_2, 0.001, _Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2); - float3 _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_deadd39786d94cb381d4d15213801177_Out_0 = Vector4_EBFF8CDE; - float _Length_2deb60e58108481bbea09c2abd4f6360_Out_1; - Unity_Length_float4(_Property_deadd39786d94cb381d4d15213801177_Out_0, _Length_2deb60e58108481bbea09c2abd4f6360_Out_1); - float _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2; - Unity_Comparison_Greater_float(_Length_2deb60e58108481bbea09c2abd4f6360_Out_1, 0, _Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2); - float4 _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3; - Unity_Branch_float4(_Comparison_e709f727d2ea465cb4118f3949b53fe3_Out_2, _Property_deadd39786d94cb381d4d15213801177_Out_0, float4(0, 0, 1, 1), _Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3); - float4x4 _Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0 = Matrix4_0617b0bd42fc46ff90b1d55303a5477f; - float4 _Property_844e35a56a864617b521872c1cee398d_Out_0 = Vector4_b44806ec67ca461fbcdf009dc6092cc3; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_071e9370484b4168b560a27fbea64a52; - float4 _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_cb03cb298f0a47d4ae24d85f3c47db75_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_844e35a56a864617b521872c1cee398d_Out_0, _WindNMPoints_071e9370484b4168b560a27fbea64a52, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1); - float4 _Add_a113107313614631a97405d9184f98a3_Out_2; - Unity_Add_float4(_Branch_2e6bb4148fd446a993140d85024ed2fd_Out_3, _WindNMPoints_071e9370484b4168b560a27fbea64a52_WindPoint_1, _Add_a113107313614631a97405d9184f98a3_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba; - float3 _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1; - float _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2; - SG_WindNMCalculateNoShiver_eb6e21ce3f0928341b88e73dd9c62c10_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_a113107313614631a97405d9184f98a3_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2; - Unity_Comparison_Equal_float((_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2).x, 0, _Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2); - float3 _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3; - Unity_Branch_float3(_Comparison_0f5ed7667cdf4578afbecdf1b475e950_Out_2, float3(1E-06, 1E-06, 1E-06), _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_Branch_c8dd300f10fc4f43be96bb48a7829077_Out_3, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculateNoShiver_ed5866aa196e188893da1307437132ba_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_d48375b91f961f89b468b522221fb6ee_Out_2.xyz); - float3 _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - Unity_Branch_float3(_Comparison_6cf8be06421545a08bdb1356deefd1b9_Out_2, _Property_2a4ab46b1d7c45918978aae50bd32b6f_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - vertex_1 = _Branch_bb3f6dc3a34c46ccae98ed5d67676c93_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float3 _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0; - float3 _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_91dfa6b3990a4aa19ae6b8c9cb6acbb7_Out_2, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1); - float _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0 = _Drag; - float _Property_f8de1ebb334d2982bd04750be5001905_Out_0 = _HeightDrag; - float _Property_35bda80cbd3a028db9019184e3f1d473_Out_0 = _Stiffness; - float _Property_54574a47e8d007869c723d2707702a4d_Out_0 = _InitialBend; - float4 _Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0 = _NewNormal; - UnityTexture2D _Property_5d5096b3b86b248081565f41cc9435c0_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_db0b3709282a888087ca0b325602fcf7_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_4fbb56052a534d8db23c5137b143c46c_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_709ee29eb18bf28488afa8d130799898_Out_0 = WIND_SETTINGS_GustScale; - float _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0 = WIND_SETTINGS_Points; - float4 _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877.VertexColor = IN.VertexColor; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - float3 _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2; - SG_WindNMNoShiver_76b4d01171ac5564a83e72b2b046c0cf_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_cb3ca5c5d016f884b6129a6dace4a8d0_ObjectSpacePosition_1, _Property_832591c570c5ef8ca5aa7883847e6ce5_Out_0, _Property_f8de1ebb334d2982bd04750be5001905_Out_0, 0, _Property_35bda80cbd3a028db9019184e3f1d473_Out_0, _Property_54574a47e8d007869c723d2707702a4d_Out_0, (_Property_4b5462bbe2f2a58cb20edd072d0fba83_Out_0.xyz), _Property_5d5096b3b86b248081565f41cc9435c0_Out_0, _Property_20ddd6416c61b789aa44ae2385c9dd81_Out_0, _Property_db0b3709282a888087ca0b325602fcf7_Out_0, _Property_4fbb56052a534d8db23c5137b143c46c_Out_0, _Property_4fafa760ceb17e8f997de1b0fa01db06_Out_0, _Property_6fd72dee87449887ae0effd08ad9ee0c_Out_0, _Property_709ee29eb18bf28488afa8d130799898_Out_0, _Property_ce2d025b3c6c078e9009049f6fe6fbf2_Out_0, _Property_91a99faf2fd044ceaf10d2c6d9142ded_Out_0, _Property_1313ba3c59f24489b442d9cf411a23a7_Out_0, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1, _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_normal_2); - description.Position = _WindNMNoShiver_e0925fdd15a66f8faa6049241dc54877_vertex_1; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float _AORemapMax; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float4 _SnowBaseColor; - float3 _SnowColorAdjustment; - float4 _SnowMaskA_TexelSize; - float _SnowMaskTreshold; - float _InvertSnowMask; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMax; - float _SnowThickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _HeightDrag; - float4 _NewNormal; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowMaskA); - SAMPLER(sampler_SnowMaskA); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - // GraphIncludes: <None> - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_d05cf9ff645083819bfe42bb3110993f_Out_0, _Vector2_b825adf0744b8683b0b84289b95ae6a3_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_4d2d8949f64f4488bd87f8f404a2e214_A_4 = 0; - float2 _Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0 = float2(_Split_4d2d8949f64f4488bd87f8f404a2e214_R_1, _Split_4d2d8949f64f4488bd87f8f404a2e214_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_e2d43ac72512bc868a7e069ee0b5de54_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0 = _SnowColorAdjustment; - UnityTexture2D _Property_61165f3fb64b9581936755d1859a63d1_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_59b77ed09687698c9df9fb89f035d486_Out_0 = _SnowTilingOffset; - float _Split_001d1c5245baf58ebe90614002964d26_R_1 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[0]; - float _Split_001d1c5245baf58ebe90614002964d26_G_2 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[1]; - float _Split_001d1c5245baf58ebe90614002964d26_B_3 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[2]; - float _Split_001d1c5245baf58ebe90614002964d26_A_4 = _Property_59b77ed09687698c9df9fb89f035d486_Out_0[3]; - float2 _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_R_1, _Split_001d1c5245baf58ebe90614002964d26_G_2); - float2 _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0 = float2(_Split_001d1c5245baf58ebe90614002964d26_B_3, _Split_001d1c5245baf58ebe90614002964d26_A_4); - float2 _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_5efb68e6e5d25f86996699d19d486b09_Out_0, _Vector2_6d15ade060711b8f8e0aa3c8bc8cc205_Out_0, _TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3); - float4 _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_61165f3fb64b9581936755d1859a63d1_Out_0.tex, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.samplerstate, _Property_61165f3fb64b9581936755d1859a63d1_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_R_4 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.r; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_G_5 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.g; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_B_6 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.b; - float _SampleTexture2D_39203901ccf89a86a08fec99a110876a_A_7 = _SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0.a; - float4 _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0 = _SnowBaseColor; - float4 _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_39203901ccf89a86a08fec99a110876a_RGBA_0, _Property_32d68d2fddf38587ba1ce61370606b2e_Out_0, _Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2); - float3 _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2; - Unity_Multiply_float3_float3(_Property_3fadc14b36b4d78e8d366caa2edfd856_Out_0, (_Multiply_92829d5521f28b8aa224d7e561fb811f_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2); - float _Property_3d7ab7848156fd84909edbfb21817a22_Out_0 = _Snow_Amount; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_8816f396674c0186b60e01f66f969b50_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_8816f396674c0186b60e01f66f969b50_Out_0, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2); - float3 _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_9d8ca9195919c888a9c9051e0f1cd4ac_Out_2, _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2); - float _Split_2c136f8fce898c8482a32f761d44af70_R_1 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[0]; - float _Split_2c136f8fce898c8482a32f761d44af70_G_2 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[1]; - float _Split_2c136f8fce898c8482a32f761d44af70_B_3 = _NormalBlend_314889913d199882b8681f97bd38bb33_Out_2[2]; - float _Split_2c136f8fce898c8482a32f761d44af70_A_4 = 0; - float _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2; - Unity_Multiply_float_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, _Split_2c136f8fce898c8482a32f761d44af70_G_2, _Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2); - float _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3; - Unity_Clamp_float(_Multiply_ccab4241c9d12e8b80045e08a204ff3c_Out_2, 0, 1, _Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3); - float _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1; - Unity_Saturate_float(_Clamp_f4f623e9a4faf28b95511b2f4f43ce90_Out_3, _Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1); - float _Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0 = _InvertSnowMask; - UnityTexture2D _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskA); - float4 _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0 = SAMPLE_TEXTURE2D(_Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.tex, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.samplerstate, _Property_7b2af7ae4c97ad87944be7cd2bc4eb43_Out_0.GetTransformedUV(_TilingAndOffset_e2cf64d8eaaf738db00378287f7940a2_Out_3)); - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_R_4 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.r; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_G_5 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.g; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_B_6 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.b; - float _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7 = _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_RGBA_0.a; - float _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1; - Unity_OneMinus_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1); - float _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3; - Unity_Branch_float(_Property_0c96ceeb762fe089b37cd048c24b4bd4_Out_0, _OneMinus_33210d21f565548892db3c5d99fa493c_Out_1, _SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3); - float _Property_eb2225b08d958e8e9e7300781864539e_Out_0 = _SnowMaskTreshold; - float _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2; - Unity_Multiply_float_float(_Branch_a79d343ee9439b85ad127ecff1e9eeeb_Out_3, _Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2); - float _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3; - Unity_Clamp_float(_Multiply_8ea05ee505b473879cc3d428aa5fa068_Out_2, 0, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3); - float _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3; - Unity_Lerp_float(_Saturate_0fab541eaa360a858b7c7604461dda3b_Out_1, 1, _Clamp_1ab2de835f37858a976e4112bf0508d8_Out_3, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3); - float _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1; - Unity_Absolute_float(_SampleTexture2D_4471b6e8ae6601848c2a53c7b80cec02_A_7, _Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1); - float _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3; - Unity_Clamp_float(_Property_3d7ab7848156fd84909edbfb21817a22_Out_0, 0.1, 2, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3); - float _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2; - Unity_Divide_float(_Property_eb2225b08d958e8e9e7300781864539e_Out_0, _Clamp_f433cc74576f1d8890d846f1166270ec_Out_3, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2); - float _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2; - Unity_Power_float(_Absolute_1a6a4f45ee322484b000148d3af417ff_Out_1, _Divide_e3927f8e1e0b4b83baccb9bb1cc0e752_Out_2, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2); - float _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3; - Unity_Lerp_float(0, _Lerp_a5e9aa1fb6bab9849b7130615a95a612_Out_3, _Power_0ae03a3181d57f83ab44688acf9929b1_Out_2, _Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3); - float3 _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - Unity_Lerp_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Multiply_2af8ddf0df570c83b5ed98d2970bef73_Out_2, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_eb89e776222246569c6855424ed37253_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_034553de686b128785dfbe264a0d7e8d_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0 = SAMPLE_TEXTURE2D(_Property_034553de686b128785dfbe264a0d7e8d_Out_0.tex, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.samplerstate, _Property_034553de686b128785dfbe264a0d7e8d_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_R_4 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.r; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_G_5 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.g; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_B_6 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.b; - float _SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7 = _SampleTexture2D_d3479e9137803c8196660d7321b54d04_RGBA_0.a; - float _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0 = _Thickness; - float _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2; - Unity_Multiply_float_float(_SampleTexture2D_d3479e9137803c8196660d7321b54d04_A_7, _Property_2fa2ab76399ae48aaf1180768279e6b9_Out_0, _Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2); - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float4 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4; - float3 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5; - float2 _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6; - Unity_Combine_float(_Multiply_fd4defbd3562bb8cb6ca05f427c76103_Out_2, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0, 0, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGBA_4, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_dbef3617e5e47d8181221fd59c92bd9f_RG_6); - float _Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0 = _SnowThickness; - float _Property_770aedf7f9661284be3b795bc1f86a09_Out_0 = _SnowSmoothnessRemapMax; - float _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0 = _SnowAORemapMax; - float4 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4; - float3 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5; - float2 _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6; - Unity_Combine_float(_Property_3050dd4c95fdb7868e07ef46726a04f5_Out_0, _Property_770aedf7f9661284be3b795bc1f86a09_Out_0, _Property_867b470c8ff2f88fa7afc5a970d457bb_Out_0, 0, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGBA_4, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RG_6); - float3 _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3; - Unity_Lerp_float3(_Combine_dbef3617e5e47d8181221fd59c92bd9f_RGB_5, _Combine_f9e06f6dadcf4689885c2dac9ec9a391_RGB_5, (_Lerp_d1a5aa42847f468aa1b8c51a7700a6a5_Out_3.xxx), _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3); - float _Split_67a5184356745d8588547536b16bda51_R_1 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[0]; - float _Split_67a5184356745d8588547536b16bda51_G_2 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[1]; - float _Split_67a5184356745d8588547536b16bda51_B_3 = _Lerp_62372f9acf66ad8e8d692cbed236d551_Out_3[2]; - float _Split_67a5184356745d8588547536b16bda51_A_4 = 0; - surface.BaseColor = _Lerp_22f4cecc800e5c8485a02259bfeb34ea_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_eb89e776222246569c6855424ed37253_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Split_67a5184356745d8588547536b16bda51_G_2; - surface.Occlusion = _Split_67a5184356745d8588547536b16bda51_B_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Split_67a5184356745d8588547536b16bda51_R_1; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader.meta deleted file mode 100644 index 7a96ab9..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Cross_Snow.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 019734a41c5d8664fba14100cbd5a226 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader deleted file mode 100644 index 665da74..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader +++ /dev/null @@ -1,26688 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Foliage" -{ - Properties - { - _AlphaCutoff("Alpha Cutoff", Float) = 0.5 - _AlphaShadowThreshold("Alpha Shadow Threshold", Float) = 0.5 - [NoScaleOffset]_BaseColorMap("Base Map", 2D) = "white" {} - _TilingOffset("Tiling and Offset", Vector) = (1, 1, 0, 0) - _HealthyColor("Healthy Color", Color) = (1, 1, 1, 0) - _DryColor("Dry Color", Color) = (0.8196079, 0.8196079, 0.8196079, 0) - _ColorNoiseSpread("Color Noise Spread", Float) = 2 - [Normal][NoScaleOffset]_NormalMap("Normal Map", 2D) = "bump" {} - _NormalScale("Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_MaskMap("Mask Map", 2D) = "white" {} - _AORemapMin("AO Remap Min", Range(0, 1)) = 0 - _AORemapMax("AO Remap Max", Range(0, 1)) = 1 - _SmoothnessRemapMin("Smoothness Remap Min", Range(0, 1)) = 0 - _SmoothnessRemapMax("Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_ThicknessMap("Thickness Map", 2D) = "white" {} - _Thickness("Thickness", Range(0, 1)) = 1 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - [ToggleUI]_AlphaDrag("Use Wind Drag Alpha Multiply", Float) = 0 - _ShiverDrag("Wind Shiver Drag", Float) = 0.1 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _ShiverDirectionality("Wind Shiver Directionality", Float) = 0 - _WindColorThreshold("Wind Color Threshold", Range(0, 1)) = 1 - [ToggleUI]_WINDCOLORMIX("Wind Color Mix", Float) = 0 - _WindColorInfluence("Wind Color Influence", Vector) = (0, 0, 0, 0) - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [ToggleUI]_DISTANCEBLEND("Use Distance Alpha Blend", Float) = 0 - _CullFarStart("Cull Far Start", Float) = 60 - _CullFarDistance("Cull Far Distance", Float) = 20 - [HideInInspector]_DiffusionProfileHash("Float", Float) = 0 - [HideInInspector]_DiffusionProfileAsset("Vector4", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 1 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 1 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 1 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float4 uv0; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float1 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp1.x = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp1.x; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float3 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - float4 interp7 : INTERP7; - float4 interp8 : INTERP8; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyz = input.normalWS; - output.interp3.xyzw = input.tangentWS; - output.interp4.xyzw = input.texCoord0; - output.interp5.xyzw = input.texCoord1; - output.interp6.xyzw = input.texCoord2; - output.interp7.xyzw = input.texCoord3; - output.interp8.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.normalWS = input.interp2.xyz; - output.tangentWS = input.interp3.xyzw; - output.texCoord0 = input.interp4.xyzw; - output.texCoord1 = input.interp5.xyzw; - output.texCoord2 = input.interp6.xyzw; - output.texCoord3 = input.interp7.xyzw; - output.color = input.interp8.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 TangentSpaceNormal; - float4 uv0; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float3 NormalTS; - float Smoothness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_f5eef27704664a71af5a93dc82276e89_Out_0 = _DISTANCEBLEND; - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2; - Unity_Multiply_float3_float3(_WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2); - float3 _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - Unity_Branch_float3(_Property_f5eef27704664a71af5a93dc82276e89_Out_0, _Multiply_d4f70e44e3724246acb910a8aea5e4aa_Out_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3); - description.Position = _Branch_ec9e006221aa4ba988d9b208aa752ca7_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Stiffness; - float _InitialBend; - float _Drag; - float _AlphaDrag; - float _ShiverDrag; - float _HeightDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - float WIND_SETTINGS_FlexNoiseScale; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustWorldScale; - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_74141fe390099180bdefbc36da7d88c7_Out_0 = _WINDCOLORMIX; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_30b9dc8fe281c5828fb26ddab62d521e_A_4 = 0; - float2 _Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0 = float2(_Split_30b9dc8fe281c5828fb26ddab62d521e_R_1, _Split_30b9dc8fe281c5828fb26ddab62d521e_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_092a79c7bb9c968e8491a6456edf8fb3_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_6fdc986f05b5dc8185a79e6b3a0e6ed1_Out_0, _Vector2_97253524e8bdc389a373dd6179cd6a7f_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_R_4 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.r; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_G_5 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.g; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_B_6 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.b; - float _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7 = _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0.a; - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_RGBA_0, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe; - float3 _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_3eb36cdeb0534d3d95386aca0f8d49b3_Out_2, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1); - float _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0 = _Drag; - float _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0 = _HeightDrag; - float _Property_3f9b430d02a24edb88604e67932c7c52_Out_0 = _AlphaDrag; - float _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0 = _Stiffness; - float _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0 = _ShiverDrag; - float _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0 = _ShiverDirectionality; - float _Property_803e1473bc425a86be0a8e037790e354_Out_0 = _InitialBend; - float4 _Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0 = _NewNormal; - UnityTexture2D _Property_f567da0b01ced98aa67576c33e1843e7_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_b152f20ade166589bdc2ba231ec31138_Out_0 = WIND_SETTINGS_GustScale; - float _Property_5a2fef3470ca5d8086966c270079efb0_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_a271007ff1ae44b4a3250582d8654342_Out_0 = WIND_SETTINGS_Points; - float4 _Property_4220809936cb49298c0b129e618e181d_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_0cdc443b1b35f88a9eea18af77257f90; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_0cdc443b1b35f88a9eea18af77257f90.VertexColor = IN.VertexColor; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1; - float3 _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2; - float _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_e59468a370ca588da0ada6a2d91200fe_ObjectSpacePosition_1, _Property_bb76ee204c78d38a960964830cc0cfa0_Out_0, _Property_03a6ef4f2a48db81915d76e6695d4f84_Out_0, _Property_3f9b430d02a24edb88604e67932c7c52_Out_0, _Property_6d1ad5c763bead83b94cceea3591aff0_Out_0, _Property_cf0d1e7dda96818caa3b10991b83f17a_Out_0, _Property_12700b542b968981833f0ffb0f1c6a9b_Out_0, _Property_803e1473bc425a86be0a8e037790e354_Out_0, (_Property_5fc63618d5bbcf8f87552b64c8b93966_Out_0.xyz), _Property_f567da0b01ced98aa67576c33e1843e7_Out_0, _Property_10e374e686293f86870f9d1e9e0e42f6_Out_0, _Property_ae3d38864b4788869f13c0455c7c33f3_Out_0, _Property_d025520bd0ce9384ab3f9d4748d72d86_Out_0, _Property_8e0b1925469f498dbef0d32c4c5f3799_Out_0, _Property_3c247c2ce497c08c867e5d1743fa7d2c_Out_0, _Property_781e5b2a74280b8485e94ecb0aa28682_Out_0, _Property_b152f20ade166589bdc2ba231ec31138_Out_0, _Property_5a2fef3470ca5d8086966c270079efb0_Out_0, _Property_a271007ff1ae44b4a3250582d8654342_Out_0, _Property_4220809936cb49298c0b129e618e181d_Out_0, _WindNM_0cdc443b1b35f88a9eea18af77257f90, _WindNM_0cdc443b1b35f88a9eea18af77257f90_vertex_1, _WindNM_0cdc443b1b35f88a9eea18af77257f90_normal_2, _WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_0cdc443b1b35f88a9eea18af77257f90_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - Unity_Branch_float3(_Property_74141fe390099180bdefbc36da7d88c7_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3); - float _Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - Unity_Branch_float(_Property_ea518446862c0a8bb32c04b88d0c3a3f_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_d39ed85681dc450188ba236e72d14dcb_A_7, _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Branch_291a495b4ee2e38797c787247aeca5d3_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_fe564b9ffee66e8a803c18e33a91514c_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_90e95eb43ac249ccb85667cf66b3059d_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - surface.Occlusion = _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - surface.NormalTS = _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader.meta deleted file mode 100644 index 8e99ee1..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: adce0b63bca75a84e9f786201b7d7b0b -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader b/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader deleted file mode 100644 index 76b595b..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader +++ /dev/null @@ -1,28234 +0,0 @@ -Shader "NatureManufacture/HDRP/Foliage/Foliage Snow" -{ - Properties - { - _AlphaCutoff("Alpha Cutoff", Float) = 0.5 - _AlphaShadowThreshold("Alpha Shadow Threshold", Float) = 0.5 - [NoScaleOffset]_BaseColorMap("Base Map", 2D) = "white" {} - _TilingOffset("Tiling and Offset", Vector) = (1, 1, 0, 0) - _HealthyColor("Healthy Color", Color) = (1, 1, 1, 0) - _DryColor("Dry Color", Color) = (0.8196079, 0.8196079, 0.8196079, 0) - _ColorNoiseSpread("Color Noise Spread", Float) = 2 - [Normal][NoScaleOffset]_NormalMap("Normal Map", 2D) = "bump" {} - _NormalScale("Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_MaskMap("Mask Map AO(G) SM(A)", 2D) = "white" {} - _AORemapMin("AO Remap Min", Range(0, 1)) = 0 - _AORemapMax("AO Remap Max", Range(0, 1)) = 1 - _SmoothnessRemapMin("Smoothness Remap Min", Range(0, 1)) = 0 - _SmoothnessRemapMax("Smoothness Remap Max", Range(0, 1)) = 1 - [NoScaleOffset]_ThicknessMap("Thickness Map", 2D) = "white" {} - _Thickness("Thickness", Range(0, 1)) = 1 - _Snow_Amount("Snow Amount", Range(0, 2)) = 0 - _SnowMaskTreshold("Snow Mask Treshold", Range(0.1, 15)) = 4 - _SnowAngleOverlay("Snow Angle Overlay", Range(0, 2)) = 0 - _SnowBaseColor("Snow Base Color", Color) = (1, 1, 1, 0) - [NoScaleOffset]_SnowBaseColorMap("Snow Base Map", 2D) = "white" {} - _SnowTilingOffset("Snow Tiling Offset", Vector) = (1, 1, 0, 0) - _SnowBlendHardness("Snow Blend Hardness", Range(0, 8)) = 1 - _SnowNormalScale("Snow Normal Scale", Range(0, 8)) = 1 - [NoScaleOffset]_SnowMaskMap("Snow Mask Map AO(G) SM(A)", 2D) = "white" {} - _SnowMetallic("Snow Metallic", Range(0, 1)) = 1 - _SnowAORemapMin("Snow AO Remap Min", Range(0, 1)) = 0 - _SnowAORemapMax("Snow AO Remap Max", Range(0, 1)) = 1 - _SnowSmoothnessRemapMin("Snow Smoothness Remap Min", Range(0, 1)) = 0 - _SnowSmoothnessRemapMax("Snow Smoothness Remap Max", Range(0, 1)) = 1 - _Stiffness("Wind Stiffness", Float) = 1 - _InitialBend("Wind Initial Bend", Float) = 0 - _Drag("Wind Drag", Float) = 1 - [ToggleUI]_AlphaDrag("Use Wind Drag Alpha Multiply", Float) = 0 - _HeightDrag("Wind Drag Height Offset", Float) = 0 - _ShiverDrag("Wind Shiver Drag", Float) = 0.1 - _ShiverDirectionality("Wind Shiver Directionality", Float) = 0 - _WindColorThreshold("Wind Color Threshold", Range(0, 1)) = 1 - [ToggleUI]_WINDCOLORMIX("Wind Color Mix", Float) = 0 - _WindColorInfluence("Wind Color Influence", Vector) = (0, 0, 0, 0) - _NewNormal("Mesh Normal Multiply", Vector) = (0, 0, 0, 0) - [ToggleUI]_DISTANCEBLEND("Use Distance Alpha Blend", Float) = 0 - _CullFarStart("Cull Far Start", Float) = 60 - _CullFarDistance("Cull Far Distance", Float) = 20 - [HideInInspector]_DiffusionProfileHash("Float", Float) = 0 - [HideInInspector]_DiffusionProfileAsset("Vector4", Vector) = (0, 0, 0, 0) - [HideInInspector]_EmissionColor("Color", Color) = (1, 1, 1, 1) - [HideInInspector]_RenderQueueType("Float", Float) = 1 - [HideInInspector][ToggleUI]_AddPrecomputedVelocity("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_DepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ConservativeDepthOffsetEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentWritingMotionVec("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaCutoffEnable("Boolean", Float) = 1 - [HideInInspector]_TransparentSortPriority("_TransparentSortPriority", Float) = 0 - [HideInInspector][ToggleUI]_UseShadowThreshold("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_DoubleSidedEnable("Boolean", Float) = 1 - [HideInInspector][Enum(Flip, 0, Mirror, 1, None, 2)]_DoubleSidedNormalMode("Float", Float) = 1 - [HideInInspector]_DoubleSidedConstants("Vector4", Vector) = (1, 1, -1, 0) - [HideInInspector][Enum(Auto, 0, On, 1, Off, 2)]_DoubleSidedGIMode("Float", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPrepassEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_TransparentDepthPostpassEnable("Boolean", Float) = 0 - [HideInInspector]_SurfaceType("Float", Float) = 0 - [HideInInspector]_BlendMode("Float", Float) = 0 - [HideInInspector]_SrcBlend("Float", Float) = 1 - [HideInInspector]_DstBlend("Float", Float) = 0 - [HideInInspector]_AlphaSrcBlend("Float", Float) = 1 - [HideInInspector]_AlphaDstBlend("Float", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMask("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_AlphaToMaskInspectorValue("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ZWrite("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_TransparentZWrite("Boolean", Float) = 0 - [HideInInspector]_CullMode("Float", Float) = 2 - [HideInInspector][ToggleUI]_EnableFogOnTransparent("Boolean", Float) = 1 - [HideInInspector]_CullModeForward("Float", Float) = 2 - [HideInInspector][Enum(Front, 1, Back, 2)]_TransparentCullMode("Float", Float) = 2 - [HideInInspector][Enum(UnityEditor.Rendering.HighDefinition.OpaqueCullMode)]_OpaqueCullMode("Float", Float) = 2 - [HideInInspector]_ZTestDepthEqualForOpaque("Float", Int) = 4 - [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)]_ZTestTransparent("Float", Float) = 4 - [HideInInspector][ToggleUI]_TransparentBackfaceEnable("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_RequireSplitLighting("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_ReceivesSSR("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_ReceivesSSRTransparent("Boolean", Float) = 0 - [HideInInspector][ToggleUI]_EnableBlendModePreserveSpecularLighting("Boolean", Float) = 1 - [HideInInspector][ToggleUI]_SupportDecals("Boolean", Float) = 1 - [HideInInspector]_StencilRef("Float", Int) = 0 - [HideInInspector]_StencilWriteMask("Float", Int) = 6 - [HideInInspector]_StencilRefDepth("Float", Int) = 8 - [HideInInspector]_StencilWriteMaskDepth("Float", Int) = 8 - [HideInInspector]_StencilRefMV("Float", Int) = 40 - [HideInInspector]_StencilWriteMaskMV("Float", Int) = 40 - [HideInInspector]_StencilRefDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskDistortionVec("Float", Int) = 4 - [HideInInspector]_StencilWriteMaskGBuffer("Float", Int) = 14 - [HideInInspector]_StencilRefGBuffer("Float", Int) = 10 - [HideInInspector]_ZTestGBuffer("Float", Int) = 4 - [HideInInspector][ToggleUI]_RayTracing("Boolean", Float) = 0 - [HideInInspector][Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Float", Float) = 0 - [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} - [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "ShadowCaster" - Tags - { - "LightMode" = "ShadowCaster" - } - - // Render State - Cull [_CullMode] - ZWrite On - ColorMask 0 - ZClip [_ZClip] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_SHADOWS - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float4 uv0; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float1 interp1 : INTERP1; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp1.x = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.texCoord0 = input.interp0.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp1.x; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "META" - Tags - { - "LightMode" = "META" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature _ EDITOR_VISUALIZATION - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_TEXCOORD3 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_TEXCOORD3 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 uv3 : TEXCOORD3; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 positionPredisplacementRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 texCoord3; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - struct VertexDescriptionInputs - { - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 interp0 : INTERP0; - float3 interp1 : INTERP1; - float3 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - float4 interp7 : INTERP7; - float4 interp8 : INTERP8; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.positionPredisplacementRWS; - output.interp2.xyz = input.normalWS; - output.interp3.xyzw = input.tangentWS; - output.interp4.xyzw = input.texCoord0; - output.interp5.xyzw = input.texCoord1; - output.interp6.xyzw = input.texCoord2; - output.interp7.xyzw = input.texCoord3; - output.interp8.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.positionPredisplacementRWS = input.interp1.xyz; - output.normalWS = input.interp2.xyz; - output.tangentWS = input.interp3.xyzw; - output.texCoord0 = input.interp4.xyzw; - output.texCoord1 = input.interp5.xyzw; - output.texCoord2 = input.interp6.xyzw; - output.texCoord3 = input.interp7.xyzw; - output.color = input.interp8.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVertMeshCustomInterpolation' */ - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.positionPredisplacementRWS = input.positionPredisplacementRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.texCoord3 = input.texCoord3; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorVaryingsToFragInputs' */ - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ScenePickingPass" - Tags - { - "LightMode" = "Picking" - } - - // Render State - Cull [_CullMode] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define SCENEPICKINGPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "SceneSelectionPass" - Tags - { - "LightMode" = "SceneSelectionPass" - } - - // Render State - Cull Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma editor_sync_compilation - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SCENESELECTIONPASS 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "MotionVectors" - Tags - { - "LightMode" = "MotionVectors" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskMV] - Ref [_StencilRefMV] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_MOTION_VECTORS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "TransparentDepthPrepass" - Tags - { - "LightMode" = "TransparentDepthPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float4 uv0; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float4 interp1 : INTERP1; - float4 interp2 : INTERP2; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.normalWS; - output.interp1.xyzw = input.tangentWS; - output.interp2.xyzw = input.texCoord0; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.normalWS = input.interp0.xyz; - output.tangentWS = input.interp1.xyzw; - output.texCoord0 = input.interp2.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float Alpha; - float AlphaClipThreshold; - float3 NormalTS; - float Smoothness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - #else - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.uv0 = input.texCoord0; - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "FullScreenDebug" - Tags - { - "LightMode" = "FullScreenDebug" - } - - // Render State - Cull [_CullMode] - ZTest LEqual - ZWrite Off - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options renderinglayer - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "DepthOnly" - Tags - { - "LightMode" = "DepthOnly" - } - - // Render State - Cull [_CullMode] - ZWrite On - Stencil - { - WriteMask [_StencilWriteMaskDepth] - Ref [_StencilRefDepth] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - AlphaToMask [_AlphaToMask] - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile _ WRITE_NORMAL_BUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHATOMASK_ON - #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ WRITE_DECAL_BUFFER - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_DEPTH_ONLY - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBuffer" - Tags - { - "LightMode" = "GBuffer" - } - - // Render State - Cull [_CullMode] - ZTest [_ZTestGBuffer] - Stencil - { - WriteMask [_StencilWriteMaskGBuffer] - Ref [_StencilRefGBuffer] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma multi_compile_fragment _ LIGHT_LAYERS - #pragma multi_compile_raytracing _ LIGHT_LAYERS - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_GBUFFER - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "Forward" - Tags - { - "LightMode" = "Forward" - } - - // Render State - Cull [_CullModeForward] - Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] - ZTest [_ZTestDepthEqualForOpaque] - ZWrite [_ZWrite] - ColorMask [_ColorMaskTransparentVelOne] 1 - ColorMask [_ColorMaskTransparentVelTwo] 2 - Stencil - { - WriteMask [_StencilWriteMask] - Ref [_StencilRef] - CompFront Always - PassFront Replace - CompBack Always - PassBack Replace - } - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma instancing_options nolightprobe - #pragma instancing_options nolodfade - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma multi_compile _ LOD_FADE_CROSSFADE - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK - #pragma multi_compile_raytracing _ SHADOWS_SHADOWMASK - #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT - #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT - #pragma multi_compile_fragment SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH SHADOW_VERY_HIGH - #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON - #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_FORWARD - #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING 1 - #define HAS_LIGHTLOOP 1 - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define SHADER_LIT 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 uv1 : TEXCOORD1; - float4 uv2 : TEXCOORD2; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 texCoord1; - float4 texCoord2; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - float4 interp5 : INTERP5; - float4 interp6 : INTERP6; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.texCoord1; - output.interp5.xyzw = input.texCoord2; - output.interp6.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.texCoord1 = input.interp4.xyzw; - output.texCoord2 = input.interp5.xyzw; - output.color = input.interp6.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - float4 VTPackedFeedback; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - { - surface.VTPackedFeedback = float4(1.0f,1.0f,1.0f,1.0f); - } - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.texCoord1 = input.texCoord1; - output.texCoord2 = input.texCoord2; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - builtinData.vtPackedFeedback = surfaceDescription.VTPackedFeedback; - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "RayTracingPrepass" - Tags - { - "LightMode" = "RayTracingPrepass" - } - - // Render State - Cull [_CullMode] - Blend One Zero - ZWrite On - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 4.5 - #pragma vertex Vert - #pragma fragment Frag - #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch - #pragma multi_compile_instancing - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - struct CustomInterpolators - { - float1 Distance_Scale; - }; - #define USE_CUSTOMINTERP_SUBSTRUCT - - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - #define HAVE_MESH_MODIFICATION - - - - #define SHADERPASS SHADERPASS_CONSTANT - #define RAYTRACING_SHADER_GRAPH_DEFAULT - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/NormalSurfaceGradient.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDecalData.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct AttributesMesh - { - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; - float4 uv0 : TEXCOORD0; - float4 color : COLOR; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : INSTANCEID_SEMANTIC; - #endif - }; - struct VaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float3 positionRWS; - float3 normalWS; - float4 tangentWS; - float4 texCoord0; - float4 color; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - float Distance_Scale; - }; - struct VertexDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 VertexColor; - float3 TimeParameters; - }; - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - float Distance_Scale; - }; - struct PackedVaryingsMeshToPS - { - SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; - float4 interp0 : INTERP0; - float3 interp1 : INTERP1; - float4 interp2 : INTERP2; - float4 interp3 : INTERP3; - float4 interp4 : INTERP4; - #if UNITY_ANY_INSTANCING_ENABLED - uint instanceID : CUSTOM_INSTANCE_ID; - #endif - }; - - PackedVaryingsMeshToPS PackVaryingsMeshToPS (VaryingsMeshToPS input) - { - PackedVaryingsMeshToPS output; - ZERO_INITIALIZE(PackedVaryingsMeshToPS, output); - output.positionCS = input.positionCS; - output.interp0.xyz = input.positionRWS; - output.interp1.xyz = input.normalWS; - output.interp2.xyzw = input.tangentWS; - output.interp3.xyzw = input.texCoord0; - output.interp4.xyzw = input.color; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.interp0.w = input.Distance_Scale; - return output; - } - - VaryingsMeshToPS UnpackVaryingsMeshToPS (PackedVaryingsMeshToPS input) - { - VaryingsMeshToPS output; - output.positionCS = input.positionCS; - output.positionRWS = input.interp0.xyz; - output.normalWS = input.interp1.xyz; - output.tangentWS = input.interp2.xyzw; - output.texCoord0 = input.interp3.xyzw; - output.color = input.interp4.xyzw; - #if UNITY_ANY_INSTANCING_ENABLED - output.instanceID = input.instanceID; - #endif - output.Distance_Scale = input.interp0.w; - return output; - } - - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_OneMinus_float(float In, out float Out) - { - Out = 1 - In; - } - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - struct VertexDescription - { - float3 Position; - float3 Normal; - float3 Tangent; - float Distance_Scale; - }; - - VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) - { - VertexDescription description = (VertexDescription)0; - float _Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0 = _DISTANCEBLEND; - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2; - Unity_Distance_float3(IN.AbsoluteWorldSpacePosition, _WorldSpaceCameraPos, _Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2); - float _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0 = _CullFarStart; - float _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2; - Unity_Subtract_float(_Distance_6633a77a2b6b8980bb5c1e7daf2acb30_Out_2, _Property_1da2764e2d62bd89a13653572f0d1e38_Out_0, _Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2); - float _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0 = _CullFarDistance; - float _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2; - Unity_Divide_float(_Subtract_afca10557bd8518dbaed95c1bd663c6c_Out_2, _Property_bc7d3b0aa443bb80a95bc561cb560622_Out_0, _Divide_017c719374122a888e0d8838b4c5f9c2_Out_2); - float _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1; - Unity_Saturate_float(_Divide_017c719374122a888e0d8838b4c5f9c2_Out_2, _Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1); - float _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - Unity_OneMinus_float(_Saturate_24a29aef2cd485829f33dcbc0bf8c3a7_Out_1, _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1); - float3 _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2; - Unity_Multiply_float3_float3(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, (_OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1.xxx), _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2); - float3 _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - Unity_Branch_float3(_Property_d87ac0a98ee04c9ba45054e9ee0a65f2_Out_0, _Multiply_21ac6ee08f3e453d98c0ba50dd70f87e_Out_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3); - description.Position = _Branch_055e723e8fe94a728029bbc8599cb12f_Out_3; - description.Normal = IN.ObjectSpaceNormal; - description.Tangent = IN.ObjectSpaceTangent; - description.Distance_Scale = _OneMinus_ce58535eb9e11e84adcee68d2ab6379b_Out_1; - return description; - } - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float(IN.Distance_Scale, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - - VertexDescriptionInputs AttributesMeshToVertexDescriptionInputs(AttributesMesh input) - { - VertexDescriptionInputs output; - ZERO_INITIALIZE(VertexDescriptionInputs, output); - - output.ObjectSpaceNormal = input.normalOS; - output.WorldSpaceNormal = TransformObjectToWorldNormal(input.normalOS); - output.ObjectSpaceTangent = input.tangentOS.xyz; - output.WorldSpaceTangent = TransformObjectToWorldDir(input.tangentOS.xyz); - output.ObjectSpaceBiTangent = normalize(cross(input.normalOS.xyz, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale()); - output.WorldSpaceBiTangent = TransformObjectToWorldDir(output.ObjectSpaceBiTangent); - output.ObjectSpacePosition = input.positionOS; - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(TransformObjectToWorld(input.positionOS).xyz); - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // Note: in case of animation this will be overwrite (allow to handle motion vector) - - return output; - } - - VertexDescription GetVertexDescription(AttributesMesh input, float3 timeParameters - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - // build graph inputs - VertexDescriptionInputs vertexDescriptionInputs = AttributesMeshToVertexDescriptionInputs(input); - // Override time parameters with used one (This is required to correctly handle motion vector for vertex animation based on time) - vertexDescriptionInputs.TimeParameters = timeParameters; - - // evaluate vertex graph - #ifdef HAVE_VFX_MODIFICATION - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - // Fetch the vertex graph properties for the particle instance. - GetElementVertexProperties(element, properties); - - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs, properties); - #else - VertexDescription vertexDescription = VertexDescriptionFunction(vertexDescriptionInputs); - #endif - return vertexDescription; - - } - - AttributesMesh ApplyMeshModification(AttributesMesh input, float3 timeParameters - #ifdef USE_CUSTOMINTERP_SUBSTRUCT - #ifdef TESSELLATION_ON - , inout VaryingsMeshToDS varyings - #else - , inout VaryingsMeshToPS varyings - #endif - #endif - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, timeParameters - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - - // copy graph output to the results - input.positionOS = vertexDescription.Position; - input.normalOS = vertexDescription.Normal; - input.tangentOS.xyz = vertexDescription.Tangent; - - varyings.Distance_Scale = vertexDescription.Distance_Scale; - - return input; - } - - #if defined(_ADD_CUSTOM_VELOCITY) // For shader graph custom velocity - // Return precomputed Velocity in object space - float3 GetCustomVelocity(AttributesMesh input - #ifdef HAVE_VFX_MODIFICATION - , AttributesElement element - #endif - ) - { - VertexDescription vertexDescription = GetVertexDescription(input, _TimeParameters.xyz - #ifdef HAVE_VFX_MODIFICATION - , element - #endif - ); - return vertexDescription.CustomVelocity; - } - #endif - - FragInputs BuildFragInputs(VaryingsMeshToPS input) - { - FragInputs output; - ZERO_INITIALIZE(FragInputs, output); - - // Init to some default value to make the computer quiet (else it output 'divide by zero' warning even if value is not used). - // TODO: this is a really poor workaround, but the variable is used in a bunch of places - // to compute normals which are then passed on elsewhere to compute other values... - output.tangentToWorld = k_identity3x3; - output.positionSS = input.positionCS; // input.positionCS is SV_Position - - output.positionRWS = input.positionRWS; - output.tangentToWorld = BuildTangentToWorld(input.tangentWS, input.normalWS); - output.texCoord0 = input.texCoord0; - output.color = input.color; - - #ifdef HAVE_VFX_MODIFICATION - // FragInputs from VFX come from two places: Interpolator or CBuffer. - /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */ - - #endif - - // splice point to copy custom interpolator fields from varyings to frag inputs - output.customInterpolators.Distance_Scale = input.Distance_Scale; - - return output; - } - - // existing HDRP code uses the combined function to go directly from packed to frag inputs - FragInputs UnpackVaryingsMeshToFragInputs(PackedVaryingsMeshToPS input) - { - UNITY_SETUP_INSTANCE_ID(input); - VaryingsMeshToPS unpacked = UnpackVaryingsMeshToPS(input); - return BuildFragInputs(unpacked); - } - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - output.Distance_Scale = input.customInterpolators.Distance_Scale; - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - SubShader - { - Tags - { - "RenderPipeline"="HDRenderPipeline" - "RenderType"="HDLitShader" - "Queue"="AlphaTest+25" - "ShaderGraphShader"="true" - "ShaderGraphTargetId"="HDLitSubTarget" - } - Pass - { - Name "IndirectDXR" - Tags - { - "LightMode" = "IndirectDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MULTI_BOUNCE_INDIRECT - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "VisibilityDXR" - Tags - { - "LightMode" = "VisibilityDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ TRANSPARENT_COLOR_SHADOW - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - alphaCutoff = _UseShadowThreshold ? surfaceDescription.AlphaClipThresholdShadow : alphaCutoff; - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "ForwardDXR" - Tags - { - "LightMode" = "ForwardDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "GBufferDXR" - Tags - { - "LightMode" = "GBufferDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma multi_compile _ MINIMAL_GBUFFER - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma multi_compile _ DEBUG_DISPLAY - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma multi_compile _ LIGHTMAP_ON - #pragma multi_compile _ DIRLIGHTMAP_COMBINED - #pragma multi_compile_fragment PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile_raytracing PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 - #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_RAYTRACED - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - Pass - { - Name "PathTracingDXR" - Tags - { - "LightMode" = "PathTracingDXR" - } - - // Render State - // RenderState: <None> - - // Debug - // <None> - - // -------------------------------------------------- - // Pass - - HLSLPROGRAM - - // Pragmas - #pragma target 5.0 - #pragma raytracing surface_shader - #pragma only_renderers d3d11 ps5 - - // Keywords - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature _ _SURFACE_TYPE_TRANSPARENT - #pragma shader_feature_local _BLENDMODE_OFF _BLENDMODE_ALPHA _BLENDMODE_ADD _BLENDMODE_PRE_MULTIPLY - #pragma shader_feature_local _ _DOUBLESIDED_ON - #pragma shader_feature_local _ _ADD_PRECOMPUTED_VELOCITY - #pragma shader_feature_local _ _TRANSPARENT_WRITES_MOTION_VEC - #pragma shader_feature_local_fragment _ _ENABLE_FOG_ON_TRANSPARENT - #pragma shader_feature_local_fragment _ _DISABLE_DECALS - #pragma shader_feature_local_raytracing _ _DISABLE_DECALS - #pragma shader_feature_local_fragment _ _DISABLE_SSR - #pragma shader_feature_local_raytracing _ _DISABLE_SSR - #pragma shader_feature_local_fragment _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local_raytracing _ _DISABLE_SSR_TRANSPARENT - #pragma shader_feature_local _REFRACTION_OFF _REFRACTION_PLANE _REFRACTION_SPHERE _REFRACTION_THIN - // GraphKeywords: <None> - - // Early Instancing Defines - // DotsInstancingOptions: <None> - - // Injected Instanced Properties (must be included before UnityInstancing.hlsl) - // HybridV1InjectedBuiltinProperties: <None> - - // For custom interpolators to inject a substruct definition before FragInputs definition, - // allowing for FragInputs to capture CI's intended for ShaderGraph's SDI. - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreInclude' */ - - - // TODO: Merge FragInputsVFX substruct with CustomInterpolators. - #ifdef HAVE_VFX_MODIFICATION - struct FragInputsVFX - { - /* WARNING: $splice Could not find named fragment 'FragInputsVFX' */ - }; - #endif - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl" // Required by Tessellation.hlsl - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" // Required to be include before we include properties as it define DECLARE_STACK_CB - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphHeader.hlsl" // Need to be here for Gradient struct definition - - // -------------------------------------------------- - // Defines - - // Attribute - #define ATTRIBUTES_NEED_NORMAL - #define ATTRIBUTES_NEED_TANGENT - #define ATTRIBUTES_NEED_TEXCOORD0 - #define ATTRIBUTES_NEED_TEXCOORD1 - #define ATTRIBUTES_NEED_TEXCOORD2 - #define ATTRIBUTES_NEED_COLOR - #define VARYINGS_NEED_POSITION_WS - #define VARYINGS_NEED_TANGENT_TO_WORLD - #define VARYINGS_NEED_TEXCOORD0 - #define VARYINGS_NEED_TEXCOORD1 - #define VARYINGS_NEED_TEXCOORD2 - #define VARYINGS_NEED_COLOR - - - - - #define SHADERPASS SHADERPASS_PATH_TRACING - #define SHADOW_LOW - #define RAYTRACING_SHADER_GRAPH_DEFAULT - #define HAS_LIGHTLOOP 1 - - - // Following two define are a workaround introduce in 10.1.x for RaytracingQualityNode - // The ShaderGraph don't support correctly migration of this node as it serialize all the node data - // in the json file making it impossible to uprgrade. Until we get a fix, we do a workaround here - // to still allow us to rename the field and keyword of this node without breaking existing code. - #ifdef RAYTRACING_SHADER_GRAPH_DEFAULT - #define RAYTRACING_SHADER_GRAPH_HIGH - #endif - - #ifdef RAYTRACING_SHADER_GRAPH_RAYTRACED - #define RAYTRACING_SHADER_GRAPH_LOW - #endif - // end - - #ifndef SHADER_UNLIT - // We need isFrontFace when using double sided - it is not required for unlit as in case of unlit double sided only drive the cullmode - // VARYINGS_NEED_CULLFACE can be define by VaryingsMeshToPS.FaceSign input if a IsFrontFace Node is included in the shader graph. - #if defined(_DOUBLESIDED_ON) && !defined(VARYINGS_NEED_CULLFACE) - #define VARYINGS_NEED_CULLFACE - #endif - #endif - - // Specific Material Define - #define _MATERIAL_FEATURE_TRANSMISSION 1 - #define _AMBIENT_OCCLUSION 1 - #define _SPECULAR_OCCLUSION_FROM_AO 1 - #define _ENERGY_CONSERVING_SPECULAR 1 - - // If we use subsurface scattering, enable output split lighting (for forward pass) - #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define OUTPUT_SPLIT_LIGHTING - #endif - - // This shader support recursive rendering for raytracing - #define HAVE_RECURSIVE_RENDERING - // Caution: we can use the define SHADER_UNLIT onlit after the above Material include as it is the Unlit template who define it - - // To handle SSR on transparent correctly with a possibility to enable/disable it per framesettings - // we should have a code like this: - // if !defined(_DISABLE_SSR_TRANSPARENT) - // pragma multi_compile _ WRITE_NORMAL_BUFFER - // endif - // i.e we enable the multicompile only if we can receive SSR or not, and then C# code drive - // it based on if SSR transparent in frame settings and not (and stripper can strip it). - // this is currently not possible with our current preprocessor as _DISABLE_SSR_TRANSPARENT is a keyword not a define - // so instead we used this and chose to pay the extra cost of normal write even if SSR transaprent is disabled. - // Ideally the shader graph generator should handle it but condition below can't be handle correctly for now. - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - #if !defined(_DISABLE_SSR_TRANSPARENT) && !defined(SHADER_UNLIT) - #define WRITE_NORMAL_BUFFER - #endif - #endif - - #ifndef DEBUG_DISPLAY - // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) - // Don't do it with debug display mode as it is possible there is no depth prepass in this case - #if !defined(_SURFACE_TYPE_TRANSPARENT) - #if SHADERPASS == SHADERPASS_FORWARD - #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST - #elif SHADERPASS == SHADERPASS_GBUFFER - #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST - #endif - #endif - #endif - - // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass - #if defined(SHADER_LIT) && !defined(_SURFACE_TYPE_TRANSPARENT) - #define _DEFERRED_CAPABLE_MATERIAL - #endif - - // Translate transparent motion vector define - #if defined(_TRANSPARENT_WRITES_MOTION_VEC) && defined(_SURFACE_TYPE_TRANSPARENT) - #define _WRITE_TRANSPARENT_MOTION_VECTOR - #endif - - // -- Graph Properties - CBUFFER_START(UnityPerMaterial) - float4 _DiffusionProfileAsset; - float _DiffusionProfileHash; - float _AlphaCutoff; - float _AlphaShadowThreshold; - float4 _BaseColorMap_TexelSize; - float4 _TilingOffset; - float4 _HealthyColor; - float4 _DryColor; - float _ColorNoiseSpread; - float4 _NormalMap_TexelSize; - float _NormalScale; - float4 _MaskMap_TexelSize; - float _AORemapMin; - float _AORemapMax; - float _SmoothnessRemapMin; - float _SmoothnessRemapMax; - float4 _ThicknessMap_TexelSize; - float _Thickness; - float _Snow_Amount; - float _SnowMaskTreshold; - float _SnowAngleOverlay; - float4 _SnowBaseColor; - float4 _SnowBaseColorMap_TexelSize; - float4 _SnowTilingOffset; - float _SnowBlendHardness; - float _SnowNormalScale; - float4 _SnowMaskMap_TexelSize; - float _SnowMetallic; - float _SnowAORemapMin; - float _SnowAORemapMax; - float _SnowSmoothnessRemapMin; - float _SnowSmoothnessRemapMax; - float _Stiffness; - float _InitialBend; - float _AlphaDrag; - float _Drag; - float _HeightDrag; - float _ShiverDrag; - float _ShiverDirectionality; - float _WindColorThreshold; - float _WINDCOLORMIX; - float3 _WindColorInfluence; - float4 _NewNormal; - float _DISTANCEBLEND; - float _CullFarStart; - float _CullFarDistance; - float4 _EmissionColor; - float _UseShadowThreshold; - float4 _DoubleSidedConstants; - float _BlendMode; - float _EnableBlendModePreserveSpecularLighting; - float _RayTracing; - float _RefractionModel; - CBUFFER_END - - // Object and Global properties - SAMPLER(SamplerState_Linear_Repeat); - float4x4 WIND_SETTINGS_Points; - float4 WIND_SETTINGS_Points_Radius; - TEXTURE2D(_BaseColorMap); - SAMPLER(sampler_BaseColorMap); - TEXTURE2D(_NormalMap); - SAMPLER(sampler_NormalMap); - TEXTURE2D(_MaskMap); - SAMPLER(sampler_MaskMap); - TEXTURE2D(_ThicknessMap); - SAMPLER(sampler_ThicknessMap); - TEXTURE2D(_SnowBaseColorMap); - SAMPLER(sampler_SnowBaseColorMap); - TEXTURE2D(_SnowMaskMap); - SAMPLER(sampler_SnowMaskMap); - float WIND_SETTINGS_GustWorldScale; - float WIND_SETTINGS_GustScale; - float WIND_SETTINGS_GustSpeed; - float WIND_SETTINGS_Turbulence; - float WIND_SETTINGS_ShiverNoiseScale; - float WIND_SETTINGS_FlexNoiseScale; - float4 WIND_SETTINGS_WorldDirectionAndSpeed; - TEXTURE2D(WIND_SETTINGS_TexGust); - SAMPLER(samplerWIND_SETTINGS_TexGust); - float4 WIND_SETTINGS_TexGust_TexelSize; - TEXTURE2D(WIND_SETTINGS_TexNoise); - SAMPLER(samplerWIND_SETTINGS_TexNoise); - float4 WIND_SETTINGS_TexNoise_TexelSize; - - // -- Property used by ScenePickingPass - #ifdef SCENEPICKINGPASS - float4 _SelectionID; - #endif - - // -- Properties used by SceneSelectionPass - #ifdef SCENESELECTIONPASS - int _ObjectId; - int _PassValue; - #endif - - // Includes - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl" - #include "./NM_Foliage_VSPro_Indirect.cginc" - - // -------------------------------------------------- - // Structs and Packing - - struct SurfaceDescriptionInputs - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 TangentSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float3 ObjectSpacePosition; - float3 AbsoluteWorldSpacePosition; - float4 uv0; - float4 VertexColor; - float3 TimeParameters; - }; - - //Interpolator Packs: <None> - - // -------------------------------------------------- - // Graph - - - // Graph Functions - - void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out) - { - Out = UV * Tiling + Offset; - } - - - inline float Unity_SimpleNoise_RandomValue_float (float2 uv) - { - float angle = dot(uv, float2(12.9898, 78.233)); - #if defined(SHADER_API_MOBILE) && (defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) || defined(SHADER_API_VULKAN)) - // 'sin()' has bad precision on Mali GPUs for inputs > 10000 - angle = fmod(angle, TWO_PI); // Avoid large inputs to sin() - #endif - return frac(sin(angle)*43758.5453); - } - - inline float Unity_SimpleNnoise_Interpolate_float (float a, float b, float t) - { - return (1.0-t)*a + (t*b); - } - - - inline float Unity_SimpleNoise_ValueNoise_float (float2 uv) - { - float2 i = floor(uv); - float2 f = frac(uv); - f = f * f * (3.0 - 2.0 * f); - - uv = abs(frac(uv) - 0.5); - float2 c0 = i + float2(0.0, 0.0); - float2 c1 = i + float2(1.0, 0.0); - float2 c2 = i + float2(0.0, 1.0); - float2 c3 = i + float2(1.0, 1.0); - float r0 = Unity_SimpleNoise_RandomValue_float(c0); - float r1 = Unity_SimpleNoise_RandomValue_float(c1); - float r2 = Unity_SimpleNoise_RandomValue_float(c2); - float r3 = Unity_SimpleNoise_RandomValue_float(c3); - - float bottomOfGrid = Unity_SimpleNnoise_Interpolate_float(r0, r1, f.x); - float topOfGrid = Unity_SimpleNnoise_Interpolate_float(r2, r3, f.x); - float t = Unity_SimpleNnoise_Interpolate_float(bottomOfGrid, topOfGrid, f.y); - return t; - } - void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) - { - float t = 0.0; - - float freq = pow(2.0, float(0)); - float amp = pow(0.5, float(3-0)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(1)); - amp = pow(0.5, float(3-1)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - freq = pow(2.0, float(2)); - amp = pow(0.5, float(3-2)); - t += Unity_SimpleNoise_ValueNoise_float(float2(UV.x*Scale/freq, UV.y*Scale/freq))*amp; - - Out = t; - } - - void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float4_float4(float4 A, float4 B, out float4 Out) - { - Out = A * B; - } - - void Unity_Subtract_float3(float3 A, float3 B, out float3 Out) - { - Out = A - B; - } - - void Unity_Add_float3(float3 A, float3 B, out float3 Out) - { - Out = A + B; - } - - void AddPragma_float(float3 A, out float3 Out){ - #pragma instancing_options procedural:setupVSPro - Out = A; - } - - struct Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float - { - }; - - void SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(float3 Vector3_314C8600, Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float IN, out float3 ObjectSpacePosition_1) - { - float3 _Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0 = Vector3_314C8600; - float3 _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1; - InjectSetup_float(_Property_5ec158abd968858c9d31ab40df5e9e6f_Out_0, _InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1); - float3 _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - AddPragma_float(_InjectSetupCustomFunction_dec9b26544b4a788b8ecb4117dc3d24a_Out_1, _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1); - ObjectSpacePosition_1 = _AddPragmaCustomFunction_b2a053178906d0848480a1f463521a1b_Out_1; - } - - void Unity_Distance_float3(float3 A, float3 B, out float Out) - { - Out = distance(A, B); - } - - void Unity_Comparison_Less_float(float A, float B, out float Out) - { - Out = A < B ? 1 : 0; - } - - void Unity_Comparison_Greater_float(float A, float B, out float Out) - { - Out = A > B ? 1 : 0; - } - - void Unity_Subtract_float(float A, float B, out float Out) - { - Out = A - B; - } - - void Unity_And_float(float A, float B, out float Out) - { - Out = A && B; - } - - void Unity_Branch_float(float Predicate, float True, float False, out float Out) - { - Out = Predicate ? True : False; - } - - void Unity_Multiply_float_float(float A, float B, out float Out) - { - Out = A * B; - } - - void Unity_Length_float4(float4 In, out float Out) - { - Out = length(In); - } - - void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Normalize_float3(float3 In, out float3 Out) - { - Out = normalize(In); - } - - void Unity_Length_float3(float3 In, out float Out) - { - Out = length(In); - } - - void Unity_Divide_float(float A, float B, out float Out) - { - Out = A / B; - } - - void Unity_Clamp_float(float In, float Min, float Max, out float Out) - { - Out = clamp(In, Min, Max); - } - - void Unity_Lerp_float(float A, float B, float T, out float Out) - { - Out = lerp(A, B, T); - } - - void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out) - { - Out = A * B; - } - - void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG) - { - RGBA = float4(R, G, B, A); - RGB = float3(R, G, B); - RG = float2(R, G); - } - - void Unity_Add_float4(float4 A, float4 B, out float4 Out) - { - Out = A + B; - } - - struct Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float - { - }; - - void SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(float4x4 Matrix4_cb72bb33b7a84dfda97778a514f9b60f, float3 Vector3_90379ebf40aa468b8362f8d265f4f234, float4 Vector4_159bb4232f82428893101734a03e2a1e, Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float IN, out float4 WindPoint_1) - { - float3 _Property_8921fe8497db4536a36227f7cadb23db_Out_0 = Vector3_90379ebf40aa468b8362f8d265f4f234; - float4x4 _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0 = Matrix4_cb72bb33b7a84dfda97778a514f9b60f; - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].r, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].r); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].g, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].g); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].b, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].b); - float4 _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4 = float4(_Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[0].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[1].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[2].a, _Property_0ccfce542b5a45ac9b2982fe9b0a6f94_Out_0[3].a); - float3 _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1.xyz), _Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2); - float3 _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1; - Unity_Normalize_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1); - float _Split_d6e088f9ab90466583adc22ea79eb8cc_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[0]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[1]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[2]; - float _Split_d6e088f9ab90466583adc22ea79eb8cc_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M0_1[3]; - float _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1; - Unity_Length_float3(_Subtract_95daedfd69f34cb1bdd7e1efcdaa8440_Out_2, _Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1); - float4 _Property_95860f949fd1491fa36d8d177961e858_Out_0 = Vector4_159bb4232f82428893101734a03e2a1e; - float _Split_3d7febba13614fefa50d13642a1d3f97_R_1 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[0]; - float _Split_3d7febba13614fefa50d13642a1d3f97_G_2 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[1]; - float _Split_3d7febba13614fefa50d13642a1d3f97_B_3 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[2]; - float _Split_3d7febba13614fefa50d13642a1d3f97_A_4 = _Property_95860f949fd1491fa36d8d177961e858_Out_0[3]; - float _Divide_19f232d35a834d09895353590c5a8b5a_Out_2; - Unity_Divide_float(_Length_dbcd47a2d3574d29bd8b12b1cdb0745a_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_R_1, _Divide_19f232d35a834d09895353590c5a8b5a_Out_2); - float _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3; - Unity_Clamp_float(_Divide_19f232d35a834d09895353590c5a8b5a_Out_2, 0, 1, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3); - float _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3; - Unity_Lerp_float(_Split_d6e088f9ab90466583adc22ea79eb8cc_A_4, 0, _Clamp_de1c41c0ba3341a2911a314981cf7a7a_Out_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3); - float3 _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2; - Unity_Multiply_float3_float3(_Normalize_bb19d5a0fb6544769cde736c8f2bcf83_Out_1, (_Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3.xxx), _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2); - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[0]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[1]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3 = _Multiply_d943bd948d9a4a6caab75f7761fc1c8d_Out_2[2]; - float _Split_ef99a48850fe4f8f8e30e870c5e2ee09_A_4 = 0; - float4 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4; - float3 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5; - float2 _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6; - Unity_Combine_float(_Split_ef99a48850fe4f8f8e30e870c5e2ee09_R_1, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_G_2, _Split_ef99a48850fe4f8f8e30e870c5e2ee09_B_3, _Lerp_c895c7b6e0e94a65924bfc68c604c69e_Out_3, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGB_5, _Combine_d5dcc6adcb9e470599060ef2ff7859e6_RG_6); - float3 _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2.xyz), _Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2); - float3 _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1; - Unity_Normalize_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1); - float _Split_8bbd5052350846968bf312362efd9f01_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[0]; - float _Split_8bbd5052350846968bf312362efd9f01_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[1]; - float _Split_8bbd5052350846968bf312362efd9f01_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[2]; - float _Split_8bbd5052350846968bf312362efd9f01_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M1_2[3]; - float _Length_25176aaf1e3847cb98d4410ff636b560_Out_1; - Unity_Length_float3(_Subtract_7197b65dd3b4425fb005b453c221c47d_Out_2, _Length_25176aaf1e3847cb98d4410ff636b560_Out_1); - float _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2; - Unity_Divide_float(_Length_25176aaf1e3847cb98d4410ff636b560_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_G_2, _Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2); - float _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3; - Unity_Clamp_float(_Divide_d22ef2f383f94e6cbb0ec05ab2af98d0_Out_2, 0, 1, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3); - float _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3; - Unity_Lerp_float(_Split_8bbd5052350846968bf312362efd9f01_A_4, 0, _Clamp_ec5be35d1db54279a9e0dcdc65ab5420_Out_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3); - float3 _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2; - Unity_Multiply_float3_float3(_Normalize_c1cb58821e4547dcbdff92ca338be8b9_Out_1, (_Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3.xxx), _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2); - float _Split_ab8841795f594d3a90b87ac9fcc98d38_R_1 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[0]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[1]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3 = _Multiply_7bd4a79d1b37484996b73b3702618628_Out_2[2]; - float _Split_ab8841795f594d3a90b87ac9fcc98d38_A_4 = 0; - float4 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4; - float3 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5; - float2 _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6; - Unity_Combine_float(_Split_ab8841795f594d3a90b87ac9fcc98d38_R_1, _Split_ab8841795f594d3a90b87ac9fcc98d38_G_2, _Split_ab8841795f594d3a90b87ac9fcc98d38_B_3, _Lerp_8e9751e8ad6842b3a85b84b5b568aa94_Out_3, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGB_5, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RG_6); - float4 _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2; - Unity_Add_float4(_Combine_d5dcc6adcb9e470599060ef2ff7859e6_RGBA_4, _Combine_2c29d82626064a91a7c4bd08cce14cc9_RGBA_4, _Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2); - float3 _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3.xyz), _Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2); - float3 _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1; - Unity_Normalize_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Normalize_3e728f603e4844f0ada691bd863000b2_Out_1); - float _Split_fa21a8022f944854903e06c07c6f079c_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[0]; - float _Split_fa21a8022f944854903e06c07c6f079c_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[1]; - float _Split_fa21a8022f944854903e06c07c6f079c_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[2]; - float _Split_fa21a8022f944854903e06c07c6f079c_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M2_3[3]; - float _Length_882dfabd3bce4dbebba98f988f897026_Out_1; - Unity_Length_float3(_Subtract_f38c175f40644157a8c113a8fd7c038c_Out_2, _Length_882dfabd3bce4dbebba98f988f897026_Out_1); - float _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2; - Unity_Divide_float(_Length_882dfabd3bce4dbebba98f988f897026_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_B_3, _Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2); - float _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3; - Unity_Clamp_float(_Divide_997deb354f774bf5b27a9320f16d1a2f_Out_2, 0, 1, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3); - float _Lerp_5d383299b2154039a2583aeed4883a88_Out_3; - Unity_Lerp_float(_Split_fa21a8022f944854903e06c07c6f079c_A_4, 0, _Clamp_616aa25ccc4b4508957dfe01132d62f5_Out_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3); - float3 _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2; - Unity_Multiply_float3_float3(_Normalize_3e728f603e4844f0ada691bd863000b2_Out_1, (_Lerp_5d383299b2154039a2583aeed4883a88_Out_3.xxx), _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2); - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[0]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[1]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3 = _Multiply_0399d775d57741a6b1308fce50cf7216_Out_2[2]; - float _Split_6b9b5ad9f14a49b9bc49c718430617a8_A_4 = 0; - float4 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4; - float3 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5; - float2 _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6; - Unity_Combine_float(_Split_6b9b5ad9f14a49b9bc49c718430617a8_R_1, _Split_6b9b5ad9f14a49b9bc49c718430617a8_G_2, _Split_6b9b5ad9f14a49b9bc49c718430617a8_B_3, _Lerp_5d383299b2154039a2583aeed4883a88_Out_3, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGB_5, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RG_6); - float4 _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2; - Unity_Add_float4(_Add_d1b72dc7a2294f8a86c0f5ae8ed9831b_Out_2, _Combine_ef684d29a4b74f918ca38fa0cf6bea4d_RGBA_4, _Add_e88334a2c6bf40e197a79d333645fdb2_Out_2); - float3 _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2; - Unity_Subtract_float3(_Property_8921fe8497db4536a36227f7cadb23db_Out_0, (_MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4.xyz), _Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2); - float3 _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1; - Unity_Normalize_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1); - float _Split_1bfec6763d4b458398e36937b4114c29_R_1 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[0]; - float _Split_1bfec6763d4b458398e36937b4114c29_G_2 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[1]; - float _Split_1bfec6763d4b458398e36937b4114c29_B_3 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[2]; - float _Split_1bfec6763d4b458398e36937b4114c29_A_4 = _MatrixSplit_09b25987ae114376bd1deca21c911b24_M3_4[3]; - float _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1; - Unity_Length_float3(_Subtract_59668fc0d64640d3926a84feeb6cc7d1_Out_2, _Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1); - float _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2; - Unity_Divide_float(_Length_8a37c2eaad554eeb885a33813fcb99c7_Out_1, _Split_3d7febba13614fefa50d13642a1d3f97_A_4, _Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2); - float _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3; - Unity_Clamp_float(_Divide_1c33f266d32a43d69818e21acd21cc3f_Out_2, 0, 1, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3); - float _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3; - Unity_Lerp_float(_Split_1bfec6763d4b458398e36937b4114c29_A_4, 0, _Clamp_5ea5d4daacbb48b8a052eb0b94a0a46e_Out_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3); - float3 _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2; - Unity_Multiply_float3_float3(_Normalize_fb80659c0b1d4ba2b93a9c269e0cc737_Out_1, (_Lerp_b26221cb41884c75acf850b4f66b414b_Out_3.xxx), _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2); - float _Split_e22879e6c4574322ab21f6261a21bced_R_1 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[0]; - float _Split_e22879e6c4574322ab21f6261a21bced_G_2 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[1]; - float _Split_e22879e6c4574322ab21f6261a21bced_B_3 = _Multiply_67f2ec6d64334332906d5c564d5bb7c5_Out_2[2]; - float _Split_e22879e6c4574322ab21f6261a21bced_A_4 = 0; - float4 _Combine_872906644fc84c8c8286733edba75045_RGBA_4; - float3 _Combine_872906644fc84c8c8286733edba75045_RGB_5; - float2 _Combine_872906644fc84c8c8286733edba75045_RG_6; - Unity_Combine_float(_Split_e22879e6c4574322ab21f6261a21bced_R_1, _Split_e22879e6c4574322ab21f6261a21bced_G_2, _Split_e22879e6c4574322ab21f6261a21bced_B_3, _Lerp_b26221cb41884c75acf850b4f66b414b_Out_3, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Combine_872906644fc84c8c8286733edba75045_RGB_5, _Combine_872906644fc84c8c8286733edba75045_RG_6); - float4 _Add_710af6873aa744f6838904f22ad657e2_Out_2; - Unity_Add_float4(_Add_e88334a2c6bf40e197a79d333645fdb2_Out_2, _Combine_872906644fc84c8c8286733edba75045_RGBA_4, _Add_710af6873aa744f6838904f22ad657e2_Out_2); - WindPoint_1 = _Add_710af6873aa744f6838904f22ad657e2_Out_2; - } - - void Unity_Power_float(float A, float B, out float Out) - { - Out = pow(A, B); - } - - void Unity_Or_float(float A, float B, out float Out) - { - Out = A || B; - } - - void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out) - { - Out = Predicate ? True : False; - } - - void Unity_Add_float(float A, float B, out float Out) - { - Out = A + B; - } - - struct Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float - { - }; - - void SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(float3 Vector3_604F121F, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_DFDAE53E, float Vector1_7F78DDD2, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float Vector1_5EFF6B1A, Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float IN, out float3 direction_1, out float strength_2, out float3 shiverStrength_3, out float3 shiverDirection_4) - { - float4 _Property_8eece987bcee5a8681353e05121e2390_Out_0 = Vector4_EBFF8CDE; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_R_1 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[0]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[1]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[2]; - float _Split_f4f701329abd45808bbd6b61ce26dcc8_A_4 = _Property_8eece987bcee5a8681353e05121e2390_Out_0[3]; - float4 _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4; - float3 _Combine_39060d5de038a58eb7462ba953e69739_RGB_5; - float2 _Combine_39060d5de038a58eb7462ba953e69739_RG_6; - Unity_Combine_float(_Split_f4f701329abd45808bbd6b61ce26dcc8_R_1, _Split_f4f701329abd45808bbd6b61ce26dcc8_G_2, _Split_f4f701329abd45808bbd6b61ce26dcc8_B_3, 0, _Combine_39060d5de038a58eb7462ba953e69739_RGBA_4, _Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Combine_39060d5de038a58eb7462ba953e69739_RG_6); - float3 _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1; - Unity_Normalize_float3(_Combine_39060d5de038a58eb7462ba953e69739_RGB_5, _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1); - float4 _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0 = Vector4_EBFF8CDE; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_R_1 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[0]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_G_2 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[1]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_B_3 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[2]; - float _Split_aeb4c57f09db718e9e14c3afd38465ae_A_4 = _Property_2c43c4b554974085ab95cddc7214c1e2_Out_0[3]; - float3 _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2; - Unity_Multiply_float3_float3(_Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, (_Split_aeb4c57f09db718e9e14c3afd38465ae_A_4.xxx), _Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2); - float _Property_72aef364136bb683b08145ce7a1b59a1_Out_0 = Vector1_9365F438; - float _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2; - Unity_Comparison_Greater_float(_Property_72aef364136bb683b08145ce7a1b59a1_Out_0, 0, _Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2); - UnityTexture2D _Property_acc8b35c6330408c905387353b2a48e7_Out_0 = Texture2D_A3874DB9; - float3 _Property_f0ff7954720d018395b7da89e2e2d761_Out_0 = Vector3_C30D997B; - float3 _Vector3_32d64a292d3c445eb5796276236514bc_Out_0 = float3(1, 0, 0); - float _Property_e53ae21dcf87e286b67de750a59275e7_Out_0 = Vector1_9365F438; - float3 _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Property_e53ae21dcf87e286b67de750a59275e7_Out_0.xxx), _Multiply_ea451e1902009f82a8b8044a4344575e_Out_2); - float _Property_bad047c8692ad38e91118ad73dfde8a1_Out_0 = Vector1_5EFF6B1A; - float3 _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2; - Unity_Multiply_float3_float3(_Multiply_ea451e1902009f82a8b8044a4344575e_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2); - float3 _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2; - Unity_Subtract_float3(_Property_f0ff7954720d018395b7da89e2e2d761_Out_0, _Multiply_ae858d83e1cea885a9aa0a01a1eef954_Out_2, _Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2); - float _Property_7f2599afa6fc5b8394c8fb0389031122_Out_0 = Vector1_6803B355; - float3 _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2; - Unity_Multiply_float3_float3(_Subtract_b8786cc4ca501c8ba745007b3c25c479_Out_2, (_Property_7f2599afa6fc5b8394c8fb0389031122_Out_0.xxx), _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2); - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[0]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_G_2 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[1]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3 = _Multiply_4cc0cd205c36b88aa0411aa274ed6066_Out_2[2]; - float _Split_f4466ebe24e7fa838f5735fb1210a3dd_A_4 = 0; - float4 _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4; - float3 _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5; - float2 _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6; - Unity_Combine_float(_Split_f4466ebe24e7fa838f5735fb1210a3dd_R_1, _Split_f4466ebe24e7fa838f5735fb1210a3dd_B_3, 0, 0, _Combine_0ac20ec517f076829f01b70d67c5af02_RGBA_4, _Combine_0ac20ec517f076829f01b70d67c5af02_RGB_5, _Combine_0ac20ec517f076829f01b70d67c5af02_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_acc8b35c6330408c905387353b2a48e7_Out_0.tex, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.samplerstate, _Property_acc8b35c6330408c905387353b2a48e7_Out_0.GetTransformedUV(_Combine_0ac20ec517f076829f01b70d67c5af02_RG_6), 3); - #endif - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.r; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_G_6 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.g; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_B_7 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.b; - float _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_A_8 = _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_RGBA_0.a; - float _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3; - Unity_Branch_float(_Comparison_30e6d1ed5d13ea88ac1c717b4cf7f8b6_Out_2, _SampleTexture2DLOD_230c200055ef6a87bc7e6561e4cc94a8_R_5, 0, _Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3); - float _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2; - Unity_Power_float(_Branch_710124ae92f9d88bbca57ab4e6ca8632_Out_3, 2, _Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2); - float _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0 = Vector1_F53C4B89; - float _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2; - Unity_Multiply_float_float(_Power_62722ebbb5d5b18cb4e41bb5612b4f78_Out_2, _Property_9592cd5ab3f8628d995c1b79e8b0e51d_Out_0, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2); - float3 _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2; - Unity_Multiply_float3_float3((_Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2.xxx), _Normalize_a38510e5fae5478f897b4be58ae18930_Out_1, _Multiply_dbea21b5e949338ba29fe217546785bd_Out_2); - float _Property_7be270a4cb312f8ebbfba142f454b30d_Out_0 = Vector1_9365F438; - float3 _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2; - Unity_Multiply_float3_float3(_Multiply_dbea21b5e949338ba29fe217546785bd_Out_2, (_Property_7be270a4cb312f8ebbfba142f454b30d_Out_0.xxx), _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2); - float3 _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2; - Unity_Add_float3(_Multiply_43c9dfe8713d4584b24b33530801a1b9_Out_2, _Multiply_57f8f9285ea3698a9db9febf3bb09729_Out_2, _Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2); - float4 _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0 = Vector4_EBFF8CDE; - float _Split_e719665c40324e89a536d165d0427a68_R_1 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[0]; - float _Split_e719665c40324e89a536d165d0427a68_G_2 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[1]; - float _Split_e719665c40324e89a536d165d0427a68_B_3 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[2]; - float _Split_e719665c40324e89a536d165d0427a68_A_4 = _Property_d76b4059b7077987b51af415dfa9bf4a_Out_0[3]; - float _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2; - Unity_Comparison_Greater_float(_Split_e719665c40324e89a536d165d0427a68_A_4, 0, _Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2); - float _Property_295a45d224dd35829c1fc35a5ac74847_Out_0 = Vector1_2EC6D670; - float _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2; - Unity_Comparison_Greater_float(_Property_295a45d224dd35829c1fc35a5ac74847_Out_0, 0, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2); - float _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2; - Unity_Or_float(_Comparison_0e3f11398ddedf898ab9dfc4afb01674_Out_2, _Comparison_d11455e909bf08898f06c88542bc8c3c_Out_2, _Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2); - UnityTexture2D _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0 = Texture2D_5BAC276D; - float3 _Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0 = Vector3_C30D997B; - float3 _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2; - Unity_Multiply_float3_float3(_Vector3_32d64a292d3c445eb5796276236514bc_Out_0, (_Split_e719665c40324e89a536d165d0427a68_A_4.xxx), _Multiply_aabee1c217095b809f71af0c1a159e17_Out_2); - float3 _Multiply_dc69447dd485178f8993dfedd03528df_Out_2; - Unity_Multiply_float3_float3(_Multiply_aabee1c217095b809f71af0c1a159e17_Out_2, (_Property_bad047c8692ad38e91118ad73dfde8a1_Out_0.xxx), _Multiply_dc69447dd485178f8993dfedd03528df_Out_2); - float3 _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2; - Unity_Subtract_float3(_Property_c82f40aba4b7f08db9a97aaccbe0e096_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2); - float _Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0 = Vector1_B4470F9B; - float3 _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2; - Unity_Multiply_float3_float3(_Subtract_994d0a10f1b53f89a06319a456a703cb_Out_2, (_Property_1ab0df57959c6986a0602bb0abfeaf58_Out_0.xxx), _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2); - float _Split_5ff678fef0fb61889da2a8288f7e7d15_R_1 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[0]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_G_2 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[1]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3 = _Multiply_9653c173603c7f88bb186f1bf4699302_Out_2[2]; - float _Split_5ff678fef0fb61889da2a8288f7e7d15_A_4 = 0; - float4 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4; - float3 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5; - float2 _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6; - Unity_Combine_float(_Split_5ff678fef0fb61889da2a8288f7e7d15_R_1, _Split_5ff678fef0fb61889da2a8288f7e7d15_B_3, 0, 0, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGBA_4, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RGB_5, _Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.tex, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.samplerstate, _Property_0c5a125604df6a8c882ffd08d9ab1eb1_Out_0.GetTransformedUV(_Combine_c6371d3dd2e6e588b17d15becfd9f41f_RG_6), 3); - #endif - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.r; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.g; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.b; - float _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_A_8 = _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_RGBA_0.a; - float4 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4; - float3 _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5; - float2 _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_R_5, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_G_6, _SampleTexture2DLOD_f9da942482343b84b60697d06f23721c_B_7, 0, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGBA_4, _Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, _Combine_3136fa3d24c46087969f5a3828ccbb98_RG_6); - float3 _Add_ef7a0ab366477c878fbb735a918f7344_Out_2; - Unity_Add_float3(_Combine_3136fa3d24c46087969f5a3828ccbb98_RGB_5, float3(-0.5, -0.5, -0.5), _Add_ef7a0ab366477c878fbb735a918f7344_Out_2); - float3 _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3; - Unity_Branch_float3(_Or_4341a0900c08ad87bd6a2225f3fa0566_Out_2, _Add_ef7a0ab366477c878fbb735a918f7344_Out_2, float3(0, 0, 0), _Branch_740c68545077da8f8307f27b8c42ae4a_Out_3); - float _Property_9946d066804cc584a96830f8d35269cc_Out_0 = Vector1_2EC6D670; - float3 _Multiply_96523fbe5cf67789a958918945aae4af_Out_2; - Unity_Multiply_float3_float3(_Branch_740c68545077da8f8307f27b8c42ae4a_Out_3, (_Property_9946d066804cc584a96830f8d35269cc_Out_0.xxx), _Multiply_96523fbe5cf67789a958918945aae4af_Out_2); - float3 _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2; - Unity_Add_float3(_Add_02d5dc0d629dcd8f97caf80b6afb884c_Out_2, _Multiply_96523fbe5cf67789a958918945aae4af_Out_2, _Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2); - float _Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0 = Vector1_A2C4B4F4; - float3 _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - Unity_Multiply_float3_float3(_Add_36ab0a2baacbf685bfc47193bdd9ede0_Out_2, (_Property_4ffb3356bdb9c78c815a6e7da47e7a34_Out_0.xxx), _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2); - float _Length_5a5f71c3d2510f898359c583d75db21b_Out_1; - Unity_Length_float3(_Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2, _Length_5a5f71c3d2510f898359c583d75db21b_Out_1); - float _Property_51d6736452f5938caf6f83cdfc7df682_Out_0 = Vector1_7F78DDD2; - float _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2; - Unity_Add_float(_Length_5a5f71c3d2510f898359c583d75db21b_Out_1, _Property_51d6736452f5938caf6f83cdfc7df682_Out_0, _Add_8b1ff99f4209848e94b032b984c39e3d_Out_2); - float _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - Unity_Multiply_float_float(_Add_8b1ff99f4209848e94b032b984c39e3d_Out_2, 0.001, _Multiply_5a6d4212aae61b828d149e491e799600_Out_2); - UnityTexture2D _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0 = Texture2D_5BAC276D; - float3 _Property_5320bf5a642f1788a894dbc47173648a_Out_0 = Vector3_604F121F; - float3 _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2; - Unity_Subtract_float3(_Property_5320bf5a642f1788a894dbc47173648a_Out_0, _Multiply_dc69447dd485178f8993dfedd03528df_Out_2, _Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2); - float _Property_3816089766aa87859c5f31144cbd124c_Out_0 = Vector1_7F8FCEC4; - float3 _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2; - Unity_Multiply_float3_float3(_Subtract_7fdfd44ce1c2cc888cb5d8d1c6038c51_Out_2, (_Property_3816089766aa87859c5f31144cbd124c_Out_0.xxx), _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2); - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[0]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_G_2 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[1]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3 = _Multiply_9ab9ddf03296b68e839933f8882ea305_Out_2[2]; - float _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_A_4 = 0; - float4 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4; - float3 _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5; - float2 _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6; - Unity_Combine_float(_Split_4b54e6333b4a6f8fbc1c838a5c73ba65_R_1, _Split_4b54e6333b4a6f8fbc1c838a5c73ba65_B_3, 0, 0, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGBA_4, _Combine_f2285359ac4bbb82bd5fa244035dd179_RGB_5, _Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6); - #if defined(SHADER_API_GLES) && (SHADER_TARGET < 30) - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = float4(0.0f, 0.0f, 0.0f, 1.0f); - #else - float4 _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0 = SAMPLE_TEXTURE2D_LOD(_Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.tex, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.samplerstate, _Property_56a85f3e5880b68182d71f92ae900f8d_Out_0.GetTransformedUV(_Combine_f2285359ac4bbb82bd5fa244035dd179_RG_6), 3); - #endif - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.r; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.g; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.b; - float _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_A_8 = _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_RGBA_0.a; - float4 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4; - float3 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5; - float2 _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6; - Unity_Combine_float(_SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_R_5, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_G_6, _SampleTexture2DLOD_b9b4f4994b46c4809f57ef079515a083_B_7, 0, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGBA_4, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, _Combine_0fc3c10bfbaf3b8485abd672ae77584a_RG_6); - float3 _Add_a9db9633f6d029859db0a7254c5428ed_Out_2; - Unity_Add_float3(_Combine_0fc3c10bfbaf3b8485abd672ae77584a_RGB_5, float3(-0.5, -0.5, -0.5), _Add_a9db9633f6d029859db0a7254c5428ed_Out_2); - float _Property_8e67204309a58180871d072772a83d6d_Out_0 = Vector1_DFDAE53E; - float3 _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2; - Unity_Multiply_float3_float3(_Add_a9db9633f6d029859db0a7254c5428ed_Out_2, (_Property_8e67204309a58180871d072772a83d6d_Out_0.xxx), _Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2); - float _Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0 = Vector1_2EC6D670; - float3 _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - Unity_Multiply_float3_float3(_Multiply_59b6f2612f7b548eac4f8704d1322d6c_Out_2, (_Property_e668a8f9c336c9869996f9550dd9f5e2_Out_0.xxx), _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2); - float _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1; - Unity_Length_float3(_Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2, _Length_abed17d48aa1fc849ab554b85de97c0b_Out_1); - float _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2; - Unity_Multiply_float_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_a0cee471fa6b3f81a23110085b9f7901_Out_2, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2); - float _Add_2cf245dcc3383e879794b6e901c60f81_Out_2; - Unity_Add_float(_Length_abed17d48aa1fc849ab554b85de97c0b_Out_1, _Multiply_ad45b01cf53da48392b9ee916cae3758_Out_2, _Add_2cf245dcc3383e879794b6e901c60f81_Out_2); - direction_1 = _Multiply_5c06c9a8640ee88fa0516a7a341a0ea9_Out_2; - strength_2 = _Multiply_5a6d4212aae61b828d149e491e799600_Out_2; - shiverStrength_3 = (_Add_2cf245dcc3383e879794b6e901c60f81_Out_2.xxx); - shiverDirection_4 = _Multiply_2c0d3e35d60c828ba6e16efb24f09b8f_Out_2; - } - - void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) - { - Out = cross(A, B); - } - - void Unity_DotProduct_float3(float3 A, float3 B, out float Out) - { - Out = dot(A, B); - } - - void Unity_Absolute_float(float In, out float Out) - { - Out = abs(In); - } - - void Unity_Maximum_float(float A, float B, out float Out) - { - Out = max(A, B); - } - - void Unity_Cosine_float(float In, out float Out) - { - Out = cos(In); - } - - void Unity_Sine_float(float In, out float Out) - { - Out = sin(In); - } - - void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out) - { - Out = lerp(A, B, T); - } - - void Unity_Comparison_NotEqual_float(float A, float B, out float Out) - { - Out = A != B ? 1 : 0; - } - - struct Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float - { - float3 ObjectSpaceNormal; - float3 WorldSpaceNormal; - float3 ObjectSpaceTangent; - float3 WorldSpaceTangent; - float3 ObjectSpaceBiTangent; - float3 WorldSpaceBiTangent; - float4 VertexColor; - }; - - void SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(float Vector1_BCB03E1A, float3 Vector3_C30D997B, float Vector1_A2C4B4F4, float Vector1_7EE0F94A, float Boolean_527CB26E, float Vector1_DE1BF63A, float Vector1_DFDAE53E, float Vector1_B377580E, float Vector1_7F78DDD2, float3 Vector3_DE8CC74D, UnityTexture2D Texture2D_5BAC276D, UnityTexture2D Texture2D_A3874DB9, float4 Vector4_EBFF8CDE, float Vector1_B4470F9B, float Vector1_7F8FCEC4, float Vector1_2EC6D670, float Vector1_9365F438, float Vector1_F53C4B89, float Vector1_6803B355, float4x4 Matrix4_1d67f930f09e420899acb3590f11f884, float4 Vector4_9f3d873b419a4cc0bd1473a15dfd8c77, Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float IN, out float3 vertex_1, out float3 normal_2, out float colorRed_3) - { - float4 _Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_baa1498fb45f41e09050a605f8666a01_Out_1 = GetAbsolutePositionWS(TransformObjectToWorld((_Vector4_85b32669cd9d4697aec00d6fdde867da_Out_0.xyz).xyz)); - float _Distance_02d522a588f846728f56cad2a8ae617d_Out_2; - Unity_Distance_float3(_Transform_baa1498fb45f41e09050a605f8666a01_Out_1, float3(0, 0, 0), _Distance_02d522a588f846728f56cad2a8ae617d_Out_2); - float _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2; - Unity_Comparison_Less_float(_Distance_02d522a588f846728f56cad2a8ae617d_Out_2, 0.001, _Comparison_64756810c97a4848a8c89a8d9b154573_Out_2); - float3 _Property_37498b56cee449b784c4e52a67dd85b4_Out_0 = Vector3_C30D997B; - float4 _Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0 = float4(0, 0, 0, 1); - float3 _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1 = TransformObjectToWorld((_Vector4_d213eb2790b34988809a251ff9c74c6b_Out_0.xyz).xyz); - float3 _Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0 = Vector3_C30D997B; - float3 _Transform_d324a56361d94f80935dd05df051490e_Out_1 = TransformObjectToWorld(_Property_4a88ff8e6e6b2b84bb2818cf73a0af30_Out_0.xyz); - float _Property_dfda12e25f42bd808e65c99db447e176_Out_0 = Boolean_527CB26E; - float _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0 = Vector1_7EE0F94A; - float _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2; - Unity_Comparison_Greater_float(_Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, 0, _Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2); - float _Split_05e55a8c1b8cf88f93cbafc67103b677_R_1 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[0]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_G_2 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[1]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_B_3 = _Transform_d324a56361d94f80935dd05df051490e_Out_1[2]; - float _Split_05e55a8c1b8cf88f93cbafc67103b677_A_4 = 0; - float _Split_7a634ef857769683b2100876a36535a2_R_1 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[0]; - float _Split_7a634ef857769683b2100876a36535a2_G_2 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[1]; - float _Split_7a634ef857769683b2100876a36535a2_B_3 = _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1[2]; - float _Split_7a634ef857769683b2100876a36535a2_A_4 = 0; - float _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2; - Unity_Subtract_float(_Split_05e55a8c1b8cf88f93cbafc67103b677_G_2, _Split_7a634ef857769683b2100876a36535a2_G_2, _Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2); - float _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2; - Unity_Comparison_Less_float(_Subtract_1a45a2cfb2029a85a28951578a3fde32_Out_2, _Property_d2b118dbe85e878e9fec6b0b9baa39c4_Out_0, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2); - float _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2; - Unity_And_float(_Comparison_5cee8efb01c62783a5e7b747d356c826_Out_2, _Comparison_010cc8a451c9dc83967dac44b371c4df_Out_2, _And_555aa962b30d6f8fa39e7b48a39aed28_Out_2); - float _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0 = Vector1_A2C4B4F4; - float _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3; - Unity_Branch_float(_And_555aa962b30d6f8fa39e7b48a39aed28_Out_2, 1E-05, _Property_e5e59fcc565a8b80ac239ba87d1bcf74_Out_0, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3); - float _Split_43013162a81fc4889a1944f2a2b75f66_R_1 = IN.VertexColor[0]; - float _Split_43013162a81fc4889a1944f2a2b75f66_G_2 = IN.VertexColor[1]; - float _Split_43013162a81fc4889a1944f2a2b75f66_B_3 = IN.VertexColor[2]; - float _Split_43013162a81fc4889a1944f2a2b75f66_A_4 = IN.VertexColor[3]; - float _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2; - Unity_Multiply_float_float(_Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Split_43013162a81fc4889a1944f2a2b75f66_A_4, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2); - float _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3; - Unity_Branch_float(_Property_dfda12e25f42bd808e65c99db447e176_Out_0, _Multiply_9c96a1fd35427788a3d19f08eaffffef_Out_2, _Branch_24dc0e5d7442ff84b33e0e63f143d905_Out_3, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3); - float _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0 = Vector1_DFDAE53E; - float _Property_eaab26f57a13988a8a813ad0813c8570_Out_0 = Vector1_7F78DDD2; - UnityTexture2D _Property_0f02225ebee993849ea6be48328c0958_Out_0 = Texture2D_5BAC276D; - UnityTexture2D _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0 = Texture2D_A3874DB9; - float4 _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0 = Vector4_EBFF8CDE; - float _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1; - Unity_Length_float4(_Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, _Length_87dafc99f7794315b510731b8a4a9bb9_Out_1); - float _Comparison_039af055796c42c5a6c8fc1560041559_Out_2; - Unity_Comparison_Greater_float(_Length_87dafc99f7794315b510731b8a4a9bb9_Out_1, 0, _Comparison_039af055796c42c5a6c8fc1560041559_Out_2); - float4 _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3; - Unity_Branch_float4(_Comparison_039af055796c42c5a6c8fc1560041559_Out_2, _Property_68a167d80f0e4a78b2312797c24f3ad1_Out_0, float4(0, 0, 1, 1), _Branch_cd496823e9494f4f93a6419b29d23d71_Out_3); - float4x4 _Property_08610872b5eb494b8cbca55560b16092_Out_0 = Matrix4_1d67f930f09e420899acb3590f11f884; - float4 _Property_fdc5838fe4304063bea82b197efce609_Out_0 = Vector4_9f3d873b419a4cc0bd1473a15dfd8c77; - Bindings_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f; - float4 _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1; - SG_WindNMPoints_eafc4540c9670c64fbeda2f043314cec_float(_Property_08610872b5eb494b8cbca55560b16092_Out_0, SHADERGRAPH_OBJECT_POSITION, _Property_fdc5838fe4304063bea82b197efce609_Out_0, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1); - float4 _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2; - Unity_Add_float4(_Branch_cd496823e9494f4f93a6419b29d23d71_Out_3, _WindNMPoints_f20749d771d54eb4a8fa5e171906fb0f_WindPoint_1, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2); - float _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0 = Vector1_B4470F9B; - float _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0 = Vector1_7F8FCEC4; - float _Property_6b508d48a081548385021b27896c0622_Out_0 = Vector1_2EC6D670; - float _Property_d73fed4fb3c7b58d892364765a30498b_Out_0 = Vector1_9365F438; - float _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0 = Vector1_F53C4B89; - float _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0 = Vector1_6803B355; - float _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0 = Vector1_BCB03E1A; - Bindings_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float _WindNMCalculate_74d44892d809b98cb94c0907243f2718; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1; - float _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3; - float3 _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4; - SG_WindNMCalculate_f127bca9d81d2c44bafb9335b7f26bba_float(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Branch_61b7d28e5f7d2981b63f0054ac12d71a_Out_3, _Property_c79b0cc329a33587bbce0fbdb15037d2_Out_0, _Property_eaab26f57a13988a8a813ad0813c8570_Out_0, _Property_0f02225ebee993849ea6be48328c0958_Out_0, _Property_fce16cc7b4fcf48097b94eb2d5f1b596_Out_0, _Add_9084efb0e03c4fe09c8b60fd55fc02ce_Out_2, _Property_02c51f4c8a859f8f88433b435d4452f6_Out_0, _Property_8ec7177b0ea9a4819364b7fd2aca4187_Out_0, _Property_6b508d48a081548385021b27896c0622_Out_0, _Property_d73fed4fb3c7b58d892364765a30498b_Out_0, _Property_c3101a1b656cac858bfa11dbe7ebd268_Out_0, _Property_c82c2ac458938d86bcc1aae3a58cc1dc_Out_0, _Property_3f5330d8bec7c681ab9563aad03c7b89_Out_0, _WindNMCalculate_74d44892d809b98cb94c0907243f2718, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4); - float3 _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2; - Unity_CrossProduct_float(float3 (0, 1, 0), _WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2); - float3 _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1; - Unity_Normalize_float3(_CrossProduct_968274de232ac28180b15962e0cd7d4b_Out_2, _Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1); - float3 _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2); - float _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2; - Unity_DotProduct_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_669f1473ae7e6e8595e30c93528623a2_Out_2, _DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2); - float3 _Multiply_cde444a0de597b8282b544296776bd35_Out_2; - Unity_Multiply_float3_float3(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, (_DotProduct_4ef6847a2d36df8cac2bf956cc3d32e0_Out_2.xxx), _Multiply_cde444a0de597b8282b544296776bd35_Out_2); - float3 _Add_148ed50f060f2a859e921addaad435fd_Out_2; - Unity_Add_float3(_Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Multiply_cde444a0de597b8282b544296776bd35_Out_2, _Add_148ed50f060f2a859e921addaad435fd_Out_2); - float3 _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2; - Unity_Subtract_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Add_148ed50f060f2a859e921addaad435fd_Out_2, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2); - float _Distance_702b068f612c7289a99272879da274ed_Out_2; - Unity_Distance_float3(_Transform_d324a56361d94f80935dd05df051490e_Out_1, _Transform_4acbe76287b06c88a7e8fd7bf234e885_Out_1, _Distance_702b068f612c7289a99272879da274ed_Out_2); - float _Property_f5c255b0f666358291012b78132d6593_Out_0 = Vector1_DE1BF63A; - float _Divide_86ba32ec2efb64888f1b432782289403_Out_2; - Unity_Divide_float(_Distance_702b068f612c7289a99272879da274ed_Out_2, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_86ba32ec2efb64888f1b432782289403_Out_2); - float _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1; - Unity_Absolute_float(_Divide_86ba32ec2efb64888f1b432782289403_Out_2, _Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1); - float _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0 = 1E-07; - float _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2; - Unity_Maximum_float(_Absolute_b490a8463d40078e9f49eb1f255aba57_Out_1, _Float_96534b09fc72da8da7bad6ebdb2b01ab_Out_0, _Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2); - float _Divide_c45d79d6b2beea8293614db9809045fa_Out_2; - Unity_Divide_float(1, _Property_f5c255b0f666358291012b78132d6593_Out_0, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2); - float _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2; - Unity_Power_float(_Maximum_433c7134dae10d83ad9da03f0d30c4a0_Out_2, _Divide_c45d79d6b2beea8293614db9809045fa_Out_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2); - float _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2; - Unity_Multiply_float_float(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_strength_2, _Power_aae331b5fcc0168da1590dbbc62504a4_Out_2, _Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2); - float _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1; - Unity_Cosine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1); - float3 _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2; - Unity_Multiply_float3_float3(_Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, (_Cosine_210f67c5c8fb6c8aa417007f6255e22d_Out_1.xxx), _Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2); - float3 _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2; - Unity_CrossProduct_float(_Normalize_9fd167d60aa1d1809fce8233690a3c5c_Out_1, _Subtract_b285d42464e22a80adba2a34d1e89a02_Out_2, _CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2); - float _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1; - Unity_Sine_float(_Multiply_13e65c7c3e1e8282bd06a4e2746f709f_Out_2, _Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1); - float3 _Multiply_df4686bd34ab88839180248e49a9f266_Out_2; - Unity_Multiply_float3_float3(_CrossProduct_f5f50ca0805f7080b7fd20844a78afc1_Out_2, (_Sine_419aece79cb6a485a9c3dec0b5b09f8c_Out_1.xxx), _Multiply_df4686bd34ab88839180248e49a9f266_Out_2); - float3 _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2; - Unity_Add_float3(_Multiply_2f6dc881c414ee89a8fbbf0a5e0014eb_Out_2, _Multiply_df4686bd34ab88839180248e49a9f266_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2); - float3 _Add_d48375b91f961f89b468b522221fb6ee_Out_2; - Unity_Add_float3(_Add_148ed50f060f2a859e921addaad435fd_Out_2, _Add_c14d4bcfa1ccf486a133715f088d8cf7_Out_2, _Add_d48375b91f961f89b468b522221fb6ee_Out_2); - float3 _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2; - Unity_Add_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_direction_1, _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverDirection_4, _Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2); - float3 _Normalize_2e730ab91d165e86833fc7403577da38_Out_1; - Unity_Normalize_float3(_Add_5a6b029f1beb378e8e0e1339a866a7f0_Out_2, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1); - float _Property_dd5df162abb0f08c848f5bc216006b51_Out_0 = Vector1_B377580E; - float3 _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3; - Unity_Lerp_float3(IN.WorldSpaceNormal, _Normalize_2e730ab91d165e86833fc7403577da38_Out_1, (_Property_dd5df162abb0f08c848f5bc216006b51_Out_0.xxx), _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3); - float3 _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2; - Unity_Multiply_float3_float3(_WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3, _Lerp_7ca99e60b05237808b8e86b1918dc8cb_Out_3, _Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2); - float3 _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2; - Unity_Multiply_float3_float3(_Multiply_dfd4d121206f8b8194a96ccf3fce3f89_Out_2, (_Split_43013162a81fc4889a1944f2a2b75f66_A_4.xxx), _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2); - float3 _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2; - Unity_Add_float3(_Add_d48375b91f961f89b468b522221fb6ee_Out_2, _Multiply_263bf1ad18be92869a30df6104e9c2b2_Out_2, _Add_0252c311e46e2f8ab679a079c578eb5c_Out_2); - float3 _Transform_224c24cf5953f18a87e2088380250252_Out_1 = TransformWorldToObject(_Add_0252c311e46e2f8ab679a079c578eb5c_Out_2.xyz); - float3 _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - Unity_Branch_float3(_Comparison_64756810c97a4848a8c89a8d9b154573_Out_2, _Property_37498b56cee449b784c4e52a67dd85b4_Out_0, _Transform_224c24cf5953f18a87e2088380250252_Out_1, _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3); - float3 _Property_c5f622c3918154808caa04a0cff875eb_Out_0 = Vector3_DE8CC74D; - float _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1; - Unity_Length_float3(_Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1); - float _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2; - Unity_Comparison_NotEqual_float(_Length_8fac716cbfa5b983ba3cf14312642ac5_Out_1, 0, _Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2); - float3 _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2; - Unity_Multiply_float3_float3(IN.WorldSpaceNormal, _Property_c5f622c3918154808caa04a0cff875eb_Out_0, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2); - float3 _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - Unity_Branch_float3(_Comparison_17ad34828cc8b986ac7beaf8f6f2b799_Out_2, _Multiply_d5e536621795b68bbc95bb5cc341dfcf_Out_2, IN.WorldSpaceNormal, _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3); - float _Split_79721e720d206c8d903b961b5e154cd6_R_1 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[0]; - float _Split_79721e720d206c8d903b961b5e154cd6_G_2 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[1]; - float _Split_79721e720d206c8d903b961b5e154cd6_B_3 = _WindNMCalculate_74d44892d809b98cb94c0907243f2718_shiverStrength_3[2]; - float _Split_79721e720d206c8d903b961b5e154cd6_A_4 = 0; - vertex_1 = _Branch_850d415f531a4e59a45e8835fa4bc9c0_Out_3; - normal_2 = _Branch_e504c7d39baa3084852f5cd5fd3d9d94_Out_3; - colorRed_3 = _Split_79721e720d206c8d903b961b5e154cd6_R_1; - } - - void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) - { - Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); - } - - void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) - { - Out = SafeNormalize(float3(A.rg + B.rg, A.b * B.b)); - } - - void Unity_Saturate_float(float In, out float Out) - { - Out = saturate(In); - } - - void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out) - { - Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); - } - - // Graph Vertex - // GraphVertex: <None> - - // Graph Pixel - struct SurfaceDescription - { - float3 BaseColor; - float3 Emission; - float Alpha; - float AlphaClipThreshold; - float AlphaClipThresholdShadow; - float3 BentNormal; - float Smoothness; - float Occlusion; - float3 NormalTS; - float Thickness; - float DiffusionProfileHash; - }; - - SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) - { - SurfaceDescription surface = (SurfaceDescription)0; - float _Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0 = _WINDCOLORMIX; - UnityTexture2D _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0 = UnityBuildTexture2DStructNoScale(_BaseColorMap); - float4 _Property_8ec0d512145619859d288abab740e3bf_Out_0 = _TilingOffset; - float _Split_60538633130155809820b3185c81057f_R_1 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[0]; - float _Split_60538633130155809820b3185c81057f_G_2 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[1]; - float _Split_60538633130155809820b3185c81057f_B_3 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[2]; - float _Split_60538633130155809820b3185c81057f_A_4 = _Property_8ec0d512145619859d288abab740e3bf_Out_0[3]; - float2 _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0 = float2(_Split_60538633130155809820b3185c81057f_R_1, _Split_60538633130155809820b3185c81057f_G_2); - float2 _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0 = float2(_Split_60538633130155809820b3185c81057f_B_3, _Split_60538633130155809820b3185c81057f_A_4); - float2 _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_a07f722e3016ac868a142c79011b0e8b_Out_0, _Vector2_824a328a30f4ff8abc53e5ae280a6f92_Out_0, _TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3); - float4 _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0 = SAMPLE_TEXTURE2D(_Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.tex, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.samplerstate, _Property_821e07b38fd0a08d85c4dd6e5b6bbac9_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_R_4 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.r; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_G_5 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.g; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_B_6 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.b; - float _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7 = _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0.a; - float4 _Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0 = _DryColor; - float4 _Property_a69a130cee4be981800e93392cf44f91_Out_0 = _HealthyColor; - float _Split_d40617e429bbe18e899c186247a61873_R_1 = IN.AbsoluteWorldSpacePosition[0]; - float _Split_d40617e429bbe18e899c186247a61873_G_2 = IN.AbsoluteWorldSpacePosition[1]; - float _Split_d40617e429bbe18e899c186247a61873_B_3 = IN.AbsoluteWorldSpacePosition[2]; - float _Split_d40617e429bbe18e899c186247a61873_A_4 = 0; - float2 _Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0 = float2(_Split_d40617e429bbe18e899c186247a61873_R_1, _Split_d40617e429bbe18e899c186247a61873_B_3); - float _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0 = _ColorNoiseSpread; - float _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2; - Unity_SimpleNoise_float(_Vector2_dd05a2bbd4c4e48a870f5c73e5270b32_Out_0, _Property_8ec4e0bf2128f880850a04d1e101bd89_Out_0, _SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2); - float4 _Lerp_b995ffde83d24283ac272745617fa60c_Out_3; - Unity_Lerp_float4(_Property_0adfbadb393cd98e8873fd0c7df0232c_Out_0, _Property_a69a130cee4be981800e93392cf44f91_Out_0, (_SimpleNoise_96327065e2b0428f83e25f93c7e5a748_Out_2.xxxx), _Lerp_b995ffde83d24283ac272745617fa60c_Out_3); - float4 _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_RGBA_0, _Lerp_b995ffde83d24283ac272745617fa60c_Out_3, _Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2); - float3 _Property_602061aab7626587a302b9d3b4fff415_Out_0 = _WindColorInfluence; - float3 _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2; - Unity_Subtract_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2); - float3 _Add_bb734a75aee87e88a1a453671272601f_Out_2; - Unity_Add_float3(float3(1, 1, 1), _Property_602061aab7626587a302b9d3b4fff415_Out_0, _Add_bb734a75aee87e88a1a453671272601f_Out_2); - float3 _Add_6128f9f134d848fa90532a866bf35672_Out_2; - Unity_Add_float3(IN.ObjectSpacePosition, float3(1E-07, 1E-07, 1E-07), _Add_6128f9f134d848fa90532a866bf35672_Out_2); - Bindings_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9; - float3 _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1; - SG_NMFoliageVSProIndirect_7b92be50f852bc440961517e733427f8_float(_Add_6128f9f134d848fa90532a866bf35672_Out_2, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1); - float _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0 = _Drag; - float _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0 = _HeightDrag; - float _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0 = _AlphaDrag; - float _Property_39a53716332d4b849166616c6d1aa80c_Out_0 = _Stiffness; - float _Property_61b64db28f9b618681c530914e3b15b6_Out_0 = _ShiverDrag; - float _Property_e50e83d7700d9182a58e95057092088c_Out_0 = _ShiverDirectionality; - float _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0 = _InitialBend; - float4 _Property_abd2a57b479c828b92874b7fb1c268c5_Out_0 = _NewNormal; - UnityTexture2D _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexNoise); - UnityTexture2D _Property_9ad8dd68da5f178abc952e533967417f_Out_0 = UnityBuildTexture2DStructNoScale(WIND_SETTINGS_TexGust); - float4 _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0 = WIND_SETTINGS_WorldDirectionAndSpeed; - float _Property_f871a303b95e5585b5fa9990eea3247f_Out_0 = WIND_SETTINGS_FlexNoiseScale; - float _Property_6e736796e74f238397a34e59ad18342e_Out_0 = WIND_SETTINGS_ShiverNoiseScale; - float _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0 = WIND_SETTINGS_Turbulence; - float _Property_23559dc3a0071689b7803f947bb436f2_Out_0 = WIND_SETTINGS_GustSpeed; - float _Property_4302574b8b58778d89b0436dc85b09c7_Out_0 = WIND_SETTINGS_GustScale; - float _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0 = WIND_SETTINGS_GustWorldScale; - float4x4 _Property_b7708aa40463418699fc08a9a3485b76_Out_0 = WIND_SETTINGS_Points; - float4 _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0 = WIND_SETTINGS_Points_Radius; - Bindings_WindNM_8a787a0774620bd4da3252c12ec8d703_float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceNormal = IN.ObjectSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceNormal = IN.WorldSpaceNormal; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceTangent = IN.ObjectSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceTangent = IN.WorldSpaceTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.ObjectSpaceBiTangent = IN.ObjectSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.WorldSpaceBiTangent = IN.WorldSpaceBiTangent; - _WindNM_78379ccfe1a0178e8a36ed95ef6570b3.VertexColor = IN.VertexColor; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1; - float3 _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2; - float _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3; - SG_WindNM_8a787a0774620bd4da3252c12ec8d703_float(IN.TimeParameters.x, _NMFoliageVSProIndirect_4aaf945fb6494382a83e5652c60aabd9_ObjectSpacePosition_1, _Property_5d63dfcb66b78e8b87612266d6368d4f_Out_0, _Property_3c8263a368ea6b8aac75fff207ed09ce_Out_0, _Property_2eb83bf4eeb64c73b05569cb461b499c_Out_0, _Property_39a53716332d4b849166616c6d1aa80c_Out_0, _Property_61b64db28f9b618681c530914e3b15b6_Out_0, _Property_e50e83d7700d9182a58e95057092088c_Out_0, _Property_0315bc783d6b6184bb1a39ad3017f492_Out_0, (_Property_abd2a57b479c828b92874b7fb1c268c5_Out_0.xyz), _Property_f57cb794f145d88994b432e1afdfc2d9_Out_0, _Property_9ad8dd68da5f178abc952e533967417f_Out_0, _Property_f6e0ee69e63183898798f9d1c61b3803_Out_0, _Property_f871a303b95e5585b5fa9990eea3247f_Out_0, _Property_6e736796e74f238397a34e59ad18342e_Out_0, _Property_9ad6b8ae0ab1948c90c01830cba3546c_Out_0, _Property_23559dc3a0071689b7803f947bb436f2_Out_0, _Property_4302574b8b58778d89b0436dc85b09c7_Out_0, _Property_f4b96223d71b138b8924580b35fb5a9e_Out_0, _Property_b7708aa40463418699fc08a9a3485b76_Out_0, _Property_c73234b76aa04a0bae96d1bcde34daca_Out_0, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_vertex_1, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_normal_2, _WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3); - float _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3; - Unity_Clamp_float(_WindNM_78379ccfe1a0178e8a36ed95ef6570b3_colorRed_3, 0, 1, _Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3); - float _Property_706af42a0ce5e38f942eed5803eb4784_Out_0 = _WindColorThreshold; - float _Power_054c1fae88c94a838d84b228a2c711a4_Out_2; - Unity_Power_float(_Clamp_30edd3bf65b7bc80b7d948c7da02a29d_Out_3, _Property_706af42a0ce5e38f942eed5803eb4784_Out_0, _Power_054c1fae88c94a838d84b228a2c711a4_Out_2); - float3 _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3; - Unity_Lerp_float3(_Subtract_81ecbd23d0feb38a807db24a0fb691a8_Out_2, _Add_bb734a75aee87e88a1a453671272601f_Out_2, (_Power_054c1fae88c94a838d84b228a2c711a4_Out_2.xxx), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3); - float3 _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2; - Unity_Multiply_float3_float3((_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Lerp_60856d95d15f3289bd7bd77e59a7f62d_Out_3, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2); - float3 _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3; - Unity_Branch_float3(_Property_bfc9112831b46b83a5ecb8431a3702b5_Out_0, _Multiply_b6dd2dc18105df80bdfcaeccda1e7066_Out_2, (_Multiply_7440911fa0e24984a93265bf47ed64a5_Out_2.xyz), _Branch_664947c744a7258f88ad2964f46a2a4a_Out_3); - UnityTexture2D _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0 = UnityBuildTexture2DStructNoScale(_SnowBaseColorMap); - float4 _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0 = _SnowTilingOffset; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_R_1 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[0]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[1]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_B_3 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[2]; - float _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4 = _Property_3e0b030bbe3e39829c29881c275ac4bd_Out_0[3]; - float2 _Vector2_42b0b33383180389801a199925a5c1a8_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_R_1, _Split_31b3e14050af4f8ca42c38f074c22b8e_G_2); - float2 _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0 = float2(_Split_31b3e14050af4f8ca42c38f074c22b8e_B_3, _Split_31b3e14050af4f8ca42c38f074c22b8e_A_4); - float2 _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3; - Unity_TilingAndOffset_float(IN.uv0.xy, _Vector2_42b0b33383180389801a199925a5c1a8_Out_0, _Vector2_8378c84b6940618589c2a07828c9a1ae_Out_0, _TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3); - float4 _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0 = SAMPLE_TEXTURE2D(_Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.tex, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.samplerstate, _Property_c94f9d14ccd46b8dbc60a11d074d2184_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_R_4 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.r; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_G_5 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.g; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_B_6 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.b; - float _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_A_7 = _SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0.a; - float4 _Property_de5a816f4a50b283b45af4b121ede817_Out_0 = _SnowBaseColor; - float4 _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2; - Unity_Multiply_float4_float4(_SampleTexture2D_5f4ac10aca8e4b82aae303e250da0cc8_RGBA_0, _Property_de5a816f4a50b283b45af4b121ede817_Out_0, _Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2); - float _Property_2d25d498eb1e5284805bd594225dfb2d_Out_0 = _Snow_Amount; - float _Property_887980900c9c9e89b510e1af07fc4f34_Out_0 = _SnowAngleOverlay; - UnityTexture2D _Property_147b07430832c98eb0a470557ee61c5e_Out_0 = UnityBuildTexture2DStructNoScale(_NormalMap); - float4 _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0 = SAMPLE_TEXTURE2D(_Property_147b07430832c98eb0a470557ee61c5e_Out_0.tex, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.samplerstate, _Property_147b07430832c98eb0a470557ee61c5e_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.rgb = UnpackNormal(_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0); - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_R_4 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.r; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_G_5 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.g; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_B_6 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.b; - float _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_A_7 = _SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.a; - float _Property_72e436a108ad64868e46d548c585c5f3_Out_0 = _NormalScale; - float3 _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Property_72e436a108ad64868e46d548c585c5f3_Out_0, _NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2); - float _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0 = _SnowBlendHardness; - float3 _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2; - Unity_NormalStrength_float(_NormalStrength_366affc5c8b42482a633d201ef52b9d6_Out_2, _Property_6a4df9f9c4d3128aa448d3ba29c6e3fc_Out_0, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2); - float3 _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2; - Unity_NormalBlend_float(IN.WorldSpaceNormal, _NormalStrength_89430c68b607ed8c9e73e4571d9d8df4_Out_2, _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2); - float _Split_a6f07619e291da8ea16b68cd43eb7c14_R_1 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[0]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[1]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_B_3 = _NormalBlend_cdfa6e13226b1180af93ddbbc8ef407a_Out_2[2]; - float _Split_a6f07619e291da8ea16b68cd43eb7c14_A_4 = 0; - float _Add_c26569fccf4cba8586f005b796a0daf3_Out_2; - Unity_Add_float(_Property_887980900c9c9e89b510e1af07fc4f34_Out_0, _Split_a6f07619e291da8ea16b68cd43eb7c14_G_2, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2); - float _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2; - Unity_Multiply_float_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, _Add_c26569fccf4cba8586f005b796a0daf3_Out_2, _Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2); - float _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1; - Unity_Saturate_float(_Multiply_6936fb2fd9784381ba435e5fe28d07e6_Out_2, _Saturate_ea475c7871787581924c191c40ea7ff8_Out_1); - float _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3; - Unity_Clamp_float(_Saturate_ea475c7871787581924c191c40ea7ff8_Out_1, 0, 1, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3); - float _Absolute_926d941ef173e5888d95495ea1f84008_Out_1; - Unity_Absolute_float(_SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Absolute_926d941ef173e5888d95495ea1f84008_Out_1); - float _Property_d8a857e4f216cb88b5ba041577e65728_Out_0 = _SnowMaskTreshold; - float _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3; - Unity_Clamp_float(_Property_2d25d498eb1e5284805bd594225dfb2d_Out_0, 0.1, 2, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3); - float _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2; - Unity_Divide_float(_Property_d8a857e4f216cb88b5ba041577e65728_Out_0, _Clamp_813a87d87b642685bfbe7f8bcb2e401c_Out_3, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2); - float _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2; - Unity_Power_float(_Absolute_926d941ef173e5888d95495ea1f84008_Out_1, _Divide_e5b171b4b5216a8eb48c0ae2810c4586_Out_2, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2); - float _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3; - Unity_Lerp_float(0, _Clamp_774393f98d3c0582adb32a30a98bb993_Out_3, _Power_c9e294e9947e0186a0ddf7e971bf71d3_Out_2, _Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3); - float _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3; - Unity_Clamp_float(_Lerp_cb98a2529553f38d92376f9f2a4fbbd3_Out_3, 0, 1, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3); - float3 _Lerp_18212d53991d288697acf0b342302c66_Out_3; - Unity_Lerp_float3(_Branch_664947c744a7258f88ad2964f46a2a4a_Out_3, (_Multiply_58b49153fd5b7587947ed940e359b3bf_Out_2.xyz), (_Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3.xxx), _Lerp_18212d53991d288697acf0b342302c66_Out_3); - float _Property_d4ba1338316b7d828c9cecb294da13e9_Out_0 = _DISTANCEBLEND; - float _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2; - Unity_Multiply_float_float((float1(float4(0,0,0,0).x)), _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2); - float _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - Unity_Branch_float(_Property_d4ba1338316b7d828c9cecb294da13e9_Out_0, _Multiply_4f74e042a8f1c882a17c1301788d5212_Out_2, _SampleTexture2D_91f1784012cdb683a2ab7a12fc14c94d_A_7, _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3); - float _Property_067d68a770a25e8f978ca090306a96d8_Out_0 = _AlphaCutoff; - float _Property_cc216d58a2604233a8a935162205683c_Out_0 = _AlphaShadowThreshold; - UnityTexture2D _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0 = UnityBuildTexture2DStructNoScale(_MaskMap); - float4 _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0 = SAMPLE_TEXTURE2D(_Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.tex, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.samplerstate, _Property_bb9b47702e64ec8c8d8ad011fd521576_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_R_4 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.r; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.g; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_B_6 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.b; - float _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7 = _SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_RGBA_0.a; - float _Property_0682b9e13137ec8f8de23962e6db211c_Out_0 = _SmoothnessRemapMin; - float _Property_0edea7916ed7a189a62b0faf2c274601_Out_0 = _SmoothnessRemapMax; - float2 _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0 = float2(_Property_0682b9e13137ec8f8de23962e6db211c_Out_0, _Property_0edea7916ed7a189a62b0faf2c274601_Out_0); - float _Remap_857d26677c8e8a809704b89dbca71045_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_A_7, float2 (0, 1), _Vector2_8d45bee64b64f087b44fb9b02317dfdd_Out_0, _Remap_857d26677c8e8a809704b89dbca71045_Out_3); - UnityTexture2D _Property_292ed277cf7c918b80fd9a19983a2700_Out_0 = UnityBuildTexture2DStructNoScale(_SnowMaskMap); - float4 _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0 = SAMPLE_TEXTURE2D(_Property_292ed277cf7c918b80fd9a19983a2700_Out_0.tex, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.samplerstate, _Property_292ed277cf7c918b80fd9a19983a2700_Out_0.GetTransformedUV(_TilingAndOffset_ec4e9ea90a898f8f8cab672e54953f8c_Out_3)); - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_R_4 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.r; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.g; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_B_6 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.b; - float _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7 = _SampleTexture2D_5c0304b1d288f38e86471aee049494e5_RGBA_0.a; - float _Property_cb536d4c4f30e9878c56549390f5d1de_Out_0 = _SnowSmoothnessRemapMin; - float _Property_da2bd7310983908ebcf3945607ab3020_Out_0 = _SnowSmoothnessRemapMax; - float2 _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0 = float2(_Property_cb536d4c4f30e9878c56549390f5d1de_Out_0, _Property_da2bd7310983908ebcf3945607ab3020_Out_0); - float _Remap_834775b9bbf204888db8e5064b599cdb_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_A_7, float2 (0, 1), _Vector2_fb23bfa43bcb7c83a1613ecd90658d98_Out_0, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3); - float _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - Unity_Lerp_float(_Remap_857d26677c8e8a809704b89dbca71045_Out_3, _Remap_834775b9bbf204888db8e5064b599cdb_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3); - float _Property_8142f12b781ad08680220297dab56f14_Out_0 = _AORemapMin; - float _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0 = _AORemapMax; - float2 _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0 = float2(_Property_8142f12b781ad08680220297dab56f14_Out_0, _Property_48e1c5285b48c78e8af19e38f4bd77f9_Out_0); - float _Remap_f4684fae31257d82aa14c39233760e21_Out_3; - Unity_Remap_float(_SampleTexture2D_9c7e926e274f4b8c8af167e1d6430273_G_5, float2 (0, 1), _Vector2_344526038e228b85ad9c2d33f000c5ea_Out_0, _Remap_f4684fae31257d82aa14c39233760e21_Out_3); - float _Property_3895d9dd849f5481a30702e72d3d958b_Out_0 = _SnowAORemapMin; - float _Property_ac7e0c01fa93138686714d028605ab35_Out_0 = _SnowAORemapMax; - float2 _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0 = float2(_Property_3895d9dd849f5481a30702e72d3d958b_Out_0, _Property_ac7e0c01fa93138686714d028605ab35_Out_0); - float _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3; - Unity_Remap_float(_SampleTexture2D_5c0304b1d288f38e86471aee049494e5_G_5, float2 (0, 1), _Vector2_a3ceacd01b1fea899cb15d2795935dbd_Out_0, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3); - float _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - Unity_Lerp_float(_Remap_f4684fae31257d82aa14c39233760e21_Out_3, _Remap_be96ce9c36ec1e8a8517adebac2c17e1_Out_3, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3); - float _Property_136dcb9774154a8ba590269b622ac534_Out_0 = _SnowNormalScale; - float _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3; - Unity_Lerp_float(_Property_72e436a108ad64868e46d548c585c5f3_Out_0, _Property_136dcb9774154a8ba590269b622ac534_Out_0, _Clamp_5636cf673a6b278eabe9d337c51ea99c_Out_3, _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3); - float3 _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - Unity_NormalStrength_float((_SampleTexture2D_3a56330a29e2f58a96a29a2135b19cbc_RGBA_0.xyz), _Lerp_feec65a5ea7a488b95f32ca6bb1c52ab_Out_3, _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2); - float _Property_23d5dc9ae4701b8cbe189effab705601_Out_0 = _Thickness; - UnityTexture2D _Property_ae7ad25888160286ab5a8207b31f2538_Out_0 = UnityBuildTexture2DStructNoScale(_ThicknessMap); - float4 _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ae7ad25888160286ab5a8207b31f2538_Out_0.tex, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.samplerstate, _Property_ae7ad25888160286ab5a8207b31f2538_Out_0.GetTransformedUV(_TilingAndOffset_a2e0bda8e800d280b7064fc016a7e6cd_Out_3)); - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.r; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_G_5 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.g; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_B_6 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.b; - float _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_A_7 = _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_RGBA_0.a; - float _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - Unity_Multiply_float_float(_Property_23d5dc9ae4701b8cbe189effab705601_Out_0, _SampleTexture2D_29b553fae94e9280a50684a3dc6fe871_R_4, _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2); - surface.BaseColor = _Lerp_18212d53991d288697acf0b342302c66_Out_3; - surface.Emission = float3(0, 0, 0); - surface.Alpha = _Branch_c33ed0b2d97b4a8ba532fd8caaf58d93_Out_3; - surface.AlphaClipThreshold = _Property_067d68a770a25e8f978ca090306a96d8_Out_0; - surface.AlphaClipThresholdShadow = _Property_cc216d58a2604233a8a935162205683c_Out_0; - surface.BentNormal = IN.TangentSpaceNormal; - surface.Smoothness = _Lerp_d4d13dc32203b48b89980db1d5de9502_Out_3; - surface.Occlusion = _Lerp_1b76b6ff2a8f248e84498e6b3d43e15e_Out_3; - surface.NormalTS = _NormalStrength_a1366696d595b4838b9574cc18a7ab5f_Out_2; - surface.Thickness = _Multiply_e8ace33ac66085829a8a8f6ff995fcfb_Out_2; - surface.DiffusionProfileHash = _DiffusionProfileHash; - return surface; - } - - // -------------------------------------------------- - // Build Graph Inputs - #ifdef HAVE_VFX_MODIFICATION - #define VFX_SRP_ATTRIBUTES AttributesMesh - #define VaryingsMeshType VaryingsMeshToPS - #define VFX_SRP_VARYINGS VaryingsMeshType - #define VFX_SRP_SURFACE_INPUTS FragInputs - #endif - SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, float3 viewWS) - { - SurfaceDescriptionInputs output; - ZERO_INITIALIZE(SurfaceDescriptionInputs, output); - - output.WorldSpaceNormal = normalize(input.tangentToWorld[2].xyz); - #if defined(SHADER_STAGE_RAY_TRACING) - output.ObjectSpaceNormal = mul(output.WorldSpaceNormal, (float3x3) ObjectToWorld3x4()); - #else - output.ObjectSpaceNormal = normalize(mul(output.WorldSpaceNormal, (float3x3) UNITY_MATRIX_M)); // transposed multiplication by inverse matrix to handle normal scale - #endif - output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f); - output.WorldSpaceTangent = input.tangentToWorld[0].xyz; - output.ObjectSpaceTangent = TransformWorldToObjectDir(output.WorldSpaceTangent); - output.WorldSpaceBiTangent = input.tangentToWorld[1].xyz; - output.ObjectSpaceBiTangent = TransformWorldToObjectDir(output.WorldSpaceBiTangent); - output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); - output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); - output.uv0 = input.texCoord0; - output.VertexColor = input.color; - output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value - - // splice point to copy frag inputs custom interpolator pack into the SDI - /* WARNING: $splice Could not find named fragment 'CustomInterpolatorCopyToSDI' */ - - return output; - } - - // -------------------------------------------------- - // Build Surface Data (Specific Material) - - void BuildSurfaceData(FragInputs fragInputs, inout SurfaceDescription surfaceDescription, float3 V, PositionInputs posInput, out SurfaceData surfaceData, out float3 bentNormalWS) - { - ZERO_INITIALIZE(SurfaceData, surfaceData); - - // specularOcclusion need to be init ahead of decal to quiet the compiler that modify the SurfaceData struct - // however specularOcclusion can come from the graph, so need to be init here so it can be override. - surfaceData.specularOcclusion = 1.0; - - surfaceData.baseColor = surfaceDescription.BaseColor; - surfaceData.perceptualSmoothness = surfaceDescription.Smoothness; - surfaceData.ambientOcclusion = surfaceDescription.Occlusion; - surfaceData.thickness = surfaceDescription.Thickness; - surfaceData.diffusionProfileHash = asuint(surfaceDescription.DiffusionProfileHash); - - #if defined(_REFRACTION_PLANE) || defined(_REFRACTION_SPHERE) || defined(_REFRACTION_THIN) - if (_EnableSSRefraction) - { - - surfaceData.transmittanceMask = (1.0 - surfaceDescription.Alpha); - surfaceDescription.Alpha = 1.0; - } - else - { - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - surfaceDescription.Alpha = 1.0; - } - #else - surfaceData.ior = 1.0; - surfaceData.transmittanceColor = float3(1.0, 1.0, 1.0); - surfaceData.atDistance = 1.0; - surfaceData.transmittanceMask = 0.0; - #endif - - // These static material feature allow compile time optimization - surfaceData.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD; - #ifdef _MATERIAL_FEATURE_SUBSURFACE_SCATTERING - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SUBSURFACE_SCATTERING; - #endif - - #ifdef _MATERIAL_FEATURE_TRANSMISSION - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_TRANSMISSION; - #endif - - #ifdef _MATERIAL_FEATURE_ANISOTROPY - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_ANISOTROPY; - - // Initialize the normal to something non-zero to avoid a div-zero warning for anisotropy. - surfaceData.normalWS = float3(0, 1, 0); - #endif - - #ifdef _MATERIAL_FEATURE_IRIDESCENCE - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_IRIDESCENCE; - #endif - - #ifdef _MATERIAL_FEATURE_SPECULAR_COLOR - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_SPECULAR_COLOR; - #endif - - #ifdef _MATERIAL_FEATURE_CLEAR_COAT - surfaceData.materialFeatures |= MATERIALFEATUREFLAGS_LIT_CLEAR_COAT; - #endif - - #if defined (_MATERIAL_FEATURE_SPECULAR_COLOR) && defined (_ENERGY_CONSERVING_SPECULAR) - // Require to have setup baseColor - // Reproduce the energy conservation done in legacy Unity. Not ideal but better for compatibility and users can unchek it - surfaceData.baseColor *= (1.0 - Max3(surfaceData.specularColor.r, surfaceData.specularColor.g, surfaceData.specularColor.b)); - #endif - - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - // normal delivered to master node - GetNormalWS(fragInputs, surfaceDescription.NormalTS, surfaceData.normalWS, doubleSidedConstants); - - surfaceData.geomNormalWS = fragInputs.tangentToWorld[2]; - - surfaceData.tangentWS = normalize(fragInputs.tangentToWorld[0].xyz); // The tangent is not normalize in tangentToWorld for mikkt. TODO: Check if it expected that we normalize with Morten. Tag: SURFACE_GRADIENT - - - #if HAVE_DECALS - if (_EnableDecals) - { - float alpha = 1.0; - alpha = surfaceDescription.Alpha; - - // Both uses and modifies 'surfaceData.normalWS'. - DecalSurfaceData decalSurfaceData = GetDecalSurfaceData(posInput, fragInputs, alpha); - ApplyDecalToSurfaceData(decalSurfaceData, fragInputs.tangentToWorld[2], surfaceData); - } - #endif - - bentNormalWS = surfaceData.normalWS; - - surfaceData.tangentWS = Orthonormalize(surfaceData.tangentWS, surfaceData.normalWS); - - #ifdef DEBUG_DISPLAY - if (_DebugMipMapMode != DEBUGMIPMAPMODE_NONE) - { - // TODO: need to update mip info - surfaceData.metallic = 0; - } - - // We need to call ApplyDebugToSurfaceData after filling the surfarcedata and before filling builtinData - // as it can modify attribute use for static lighting - ApplyDebugToSurfaceData(fragInputs.tangentToWorld, surfaceData); - #endif - - // By default we use the ambient occlusion with Tri-ace trick (apply outside) for specular occlusion. - // If user provide bent normal then we process a better term - #if defined(_SPECULAR_OCCLUSION_CUSTOM) - // Just use the value passed through via the slot (not active otherwise) - #elif defined(_SPECULAR_OCCLUSION_FROM_AO_BENT_NORMAL) - // If we have bent normal and ambient occlusion, process a specular occlusion - surfaceData.specularOcclusion = GetSpecularOcclusionFromBentAO(V, bentNormalWS, surfaceData.normalWS, surfaceData.ambientOcclusion, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness)); - #elif defined(_AMBIENT_OCCLUSION) && defined(_SPECULAR_OCCLUSION_FROM_AO) - surfaceData.specularOcclusion = GetSpecularOcclusionFromAmbientOcclusion(ClampNdotV(dot(surfaceData.normalWS, V)), surfaceData.ambientOcclusion, PerceptualSmoothnessToRoughness(surfaceData.perceptualSmoothness)); - #endif - - #if defined(_ENABLE_GEOMETRIC_SPECULAR_AA) && !defined(SHADER_STAGE_RAY_TRACING) - surfaceData.perceptualSmoothness = GeometricNormalFiltering(surfaceData.perceptualSmoothness, fragInputs.tangentToWorld[2], surfaceDescription.SpecularAAScreenSpaceVariance, surfaceDescription.SpecularAAThreshold); - #endif - } - - // -------------------------------------------------- - // Get Surface And BuiltinData - - void GetSurfaceAndBuiltinData(FragInputs fragInputs, float3 V, inout PositionInputs posInput, out SurfaceData surfaceData, out BuiltinData builtinData RAY_TRACING_OPTIONAL_PARAMETERS) - { - // Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) - #if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) - #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group - LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); - #endif - #endif - - #ifndef SHADER_UNLIT - #ifdef _DOUBLESIDED_ON - float3 doubleSidedConstants = _DoubleSidedConstants.xyz; - #else - float3 doubleSidedConstants = float3(1.0, 1.0, 1.0); - #endif - - ApplyDoubleSidedFlipOrMirror(fragInputs, doubleSidedConstants); // Apply double sided flip on the vertex normal - #endif // SHADER_UNLIT - - SurfaceDescriptionInputs surfaceDescriptionInputs = FragInputsToSurfaceDescriptionInputs(fragInputs, V); - - #if defined(HAVE_VFX_MODIFICATION) - GraphProperties properties; - ZERO_INITIALIZE(GraphProperties, properties); - - GetElementPixelProperties(fragInputs, properties); - - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs, properties); - #else - SurfaceDescription surfaceDescription = SurfaceDescriptionFunction(surfaceDescriptionInputs); - #endif - - // Perform alpha test very early to save performance (a killed pixel will not sample textures) - // TODO: split graph evaluation to grab just alpha dependencies first? tricky.. - #ifdef _ALPHATEST_ON - float alphaCutoff = surfaceDescription.AlphaClipThreshold; - #if SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS - // The TransparentDepthPrepass is also used with SSR transparent. - // If an artists enable transaprent SSR but not the TransparentDepthPrepass itself, then we use AlphaClipThreshold - // otherwise if TransparentDepthPrepass is enabled we use AlphaClipThresholdDepthPrepass - #elif SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_POSTPASS - // DepthPostpass always use its own alpha threshold - alphaCutoff = surfaceDescription.AlphaClipThresholdDepthPostpass; - #elif (SHADERPASS == SHADERPASS_SHADOWS) || (SHADERPASS == SHADERPASS_RAYTRACING_VISIBILITY) - // If use shadow threshold isn't enable we don't allow any test - #endif - - GENERIC_ALPHA_TEST(surfaceDescription.Alpha, alphaCutoff); - #endif - - #if !defined(SHADER_STAGE_RAY_TRACING) && _DEPTHOFFSET_ON - ApplyDepthOffsetPositionInput(V, surfaceDescription.DepthOffset, GetViewForwardDir(), GetWorldToHClipMatrix(), posInput); - #endif - - #ifndef SHADER_UNLIT - float3 bentNormalWS; - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData, bentNormalWS); - - // Builtin Data - // For back lighting we use the oposite vertex normal - InitBuiltinData(posInput, surfaceDescription.Alpha, bentNormalWS, -fragInputs.tangentToWorld[2], fragInputs.texCoord1, fragInputs.texCoord2, builtinData); - - #else - BuildSurfaceData(fragInputs, surfaceDescription, V, posInput, surfaceData); - - ZERO_BUILTIN_INITIALIZE(builtinData); // No call to InitBuiltinData as we don't have any lighting - builtinData.opacity = surfaceDescription.Alpha; - - #if defined(DEBUG_DISPLAY) - // Light Layers are currently not used for the Unlit shader (because it is not lit) - // But Unlit objects do cast shadows according to their rendering layer mask, which is what we want to - // display in the light layers visualization mode, therefore we need the renderingLayers - builtinData.renderingLayers = GetMeshRenderingLightLayer(); - #endif - - #endif // SHADER_UNLIT - - #ifdef _ALPHATEST_ON - // Used for sharpening by alpha to mask - Alpha to covertage is only used with depth only and forward pass (no shadow pass, no transparent pass) - builtinData.alphaClipTreshold = alphaCutoff; - #endif - - // override sampleBakedGI - not used by Unlit - - builtinData.emissiveColor = surfaceDescription.Emission; - - // Note this will not fully work on transparent surfaces (can check with _SURFACE_TYPE_TRANSPARENT define) - // We will always overwrite vt feeback with the nearest. So behind transparent surfaces vt will not be resolved - // This is a limitation of the current MRT approach. - #ifdef UNITY_VIRTUAL_TEXTURING - #endif - - #if _DEPTHOFFSET_ON - builtinData.depthOffset = surfaceDescription.DepthOffset; - #endif - - // TODO: We should generate distortion / distortionBlur for non distortion pass - #if (SHADERPASS == SHADERPASS_DISTORTION) - builtinData.distortion = surfaceDescription.Distortion; - builtinData.distortionBlur = surfaceDescription.DistortionBlur; - #endif - - #ifndef SHADER_UNLIT - // PostInitBuiltinData call ApplyDebugToBuiltinData - PostInitBuiltinData(V, posInput, surfaceData, builtinData); - #else - ApplyDebugToBuiltinData(builtinData); - #endif - - RAY_TRACING_OPTIONAL_ALPHA_TEST_PASS - } - - // -------------------------------------------------- - // Main - - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" - - // -------------------------------------------------- - // Visual Effect Vertex Invocations - - #ifdef HAVE_VFX_MODIFICATION - #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/VisualEffectVertex.hlsl" - #endif - - ENDHLSL - } - } - CustomEditorForRenderPipeline "Rendering.HighDefinition.LitShaderGraphGUI" "UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset" - CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" - FallBack "Hidden/Shader Graph/FallbackError" -} \ No newline at end of file diff --git a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader.meta b/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader.meta deleted file mode 100644 index da1fab8..0000000 --- a/Runtime/Foliage and Grass/Foliage Shaders/NM_Foliage_Snow.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: bfe77fded9cb8fc4d9c6c2504703c6c8 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Bark_Oak.mat b/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Bark_Oak.mat index 463d8d6..e4779f0 100644 --- a/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Bark_Oak.mat +++ b/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Bark_Oak.mat @@ -10,6 +10,8 @@ Material: m_Name: Bark_Oak m_Shader: {fileID: -6465566751694194690, guid: 4819724840ee9444f9da841b477038ce, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DISABLE_SSR_TRANSPARENT - _WINDQUALITY_BEST @@ -30,6 +32,7 @@ Material: - TransparentBackface - RayTracingPrepass - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -351,6 +354,7 @@ Material: - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} - _WetColor: {r: 0.7735849, g: 0.7735849, b: 0.7735849, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3051028098876578138 MonoBehaviour: m_ObjectHideFlags: 11 @@ -363,7 +367,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: - version: 12 + version: 13 hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: diff --git a/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Leafs_Oak.mat b/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Leafs_Oak.mat index 6d1645a..3da3511 100644 --- a/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Leafs_Oak.mat +++ b/Runtime/Trees/HDRP_Oak_Tree/Models/Oak/Materials/Leafs_Oak.mat @@ -24,6 +24,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Leafs_Oak m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHATEST_ON - _DISABLE_SSR_TRANSPARENT @@ -45,6 +47,7 @@ Material: - TransparentBackface - RayTracingPrepass - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -299,6 +302,7 @@ Material: - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &8961559121094102236 MonoBehaviour: m_ObjectHideFlags: 11 @@ -311,7 +315,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: - version: 12 + version: 13 hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: diff --git a/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Bark_Pine.mat b/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Bark_Pine.mat index 4f388ff..28c0c98 100644 --- a/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Bark_Pine.mat +++ b/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Bark_Pine.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: - version: 12 + version: 13 hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: @@ -25,6 +25,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Bark_Pine m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DISABLE_SSR_TRANSPARENT - _NORMALMAP @@ -44,6 +46,7 @@ Material: - TransparentDepthPostpass - TransparentBackface - RayTracingPrepass + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -424,3 +427,4 @@ Material: - _UnlitColor: {r: 1, g: 1, b: 1, a: 1} - _UnlitColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Leafs_Pine.mat b/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Leafs_Pine.mat index 9cb248c..742f549 100644 --- a/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Leafs_Pine.mat +++ b/Runtime/Trees/HDRP_Oak_Tree/Models/Pine/Materials/Leafs_Pine.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: - version: 12 + version: 13 hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: @@ -25,6 +25,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Leafs_Pine m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHATEST_ON - _DISABLE_SSR_TRANSPARENT @@ -46,6 +48,7 @@ Material: - TransparentBackface - RayTracingPrepass - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -300,6 +303,7 @@ Material: - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3933513853208665067 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Runtime/Trees/HDRP_Oak_Tree/Scenes/HDRP_TreePack1/Global Volume Profile.asset b/Runtime/Trees/HDRP_Oak_Tree/Scenes/HDRP_TreePack1/Global Volume Profile.asset index fc3767a..7c175cb 100644 --- a/Runtime/Trees/HDRP_Oak_Tree/Scenes/HDRP_TreePack1/Global Volume Profile.asset +++ b/Runtime/Trees/HDRP_Oak_Tree/Scenes/HDRP_TreePack1/Global Volume Profile.asset @@ -56,6 +56,9 @@ MonoBehaviour: mode: m_OverrideState: 1 m_Value: 2 + useFullACES: + m_OverrideState: 0 + m_Value: 0 toeStrength: m_OverrideState: 0 m_Value: 0 @@ -80,6 +83,33 @@ MonoBehaviour: lutContribution: m_OverrideState: 0 m_Value: 1 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + fallbackMode: + m_OverrideState: 0 + m_Value: 1 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 0 + m_Value: 0 + paperWhite: + m_OverrideState: 0 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 0 + m_Value: 1 + minNits: + m_OverrideState: 0 + m_Value: 0.005 + maxNits: + m_OverrideState: 0 + m_Value: 1000 --- !u!114 &-5170195689353517893 MonoBehaviour: m_ObjectHideFlags: 3 @@ -293,6 +323,12 @@ MonoBehaviour: customValue: 100 additiveValue: 0 multiplyValue: 1 + sunInitialRotation: + m_OverrideState: 0 + m_Value: -Infinity + lockSun: + m_OverrideState: 0 + m_Value: 0 enableBackplate: m_OverrideState: 0 m_Value: 0 @@ -390,6 +426,18 @@ MonoBehaviour: skyAmbientMode: m_OverrideState: 1 m_Value: 1 + planetRadius: + m_OverrideState: 0 + m_Value: 6378.1 + renderingSpace: + m_OverrideState: 0 + m_Value: 1 + centerMode: + m_OverrideState: 0 + m_Value: 0 + planetCenter: + m_OverrideState: 0 + m_Value: {x: 0, y: -6378.1, z: 0} windOrientation: m_OverrideState: 0 m_Value: 0 @@ -399,6 +447,7 @@ MonoBehaviour: fogType: m_OverrideState: 0 m_Value: 0 + m_Version: 1 --- !u!114 &4001020087037842533 MonoBehaviour: m_ObjectHideFlags: 3 @@ -596,18 +645,16 @@ MonoBehaviour: type: m_OverrideState: 0 m_Value: 1 - sphericalMode: + atmosphericScattering: m_OverrideState: 0 m_Value: 1 - seaLevel: + renderingMode: m_OverrideState: 0 m_Value: 0 - planetaryRadius: + material: m_OverrideState: 0 - m_Value: 6378100 - planetCenterPosition: - m_OverrideState: 0 - m_Value: {x: 0, y: -6378100, z: 0} + m_Value: {fileID: -876546973899608171, guid: 02532cbb810fb404db49da84f1efe41e, + type: 3} airDensityR: m_OverrideState: 0 m_Value: 0.04534 @@ -619,7 +666,7 @@ MonoBehaviour: m_Value: 0.23264056 airTint: m_OverrideState: 0 - m_Value: {r: 0.9, g: 0.9, b: 1, a: 1} + m_Value: {r: 1, g: 1, b: 1, a: 1} airMaximumAltitude: m_OverrideState: 0 m_Value: 55261.973 @@ -635,9 +682,15 @@ MonoBehaviour: aerosolAnisotropy: m_OverrideState: 0 m_Value: 0 - numberOfBounces: + ozoneDensityDimmer: + m_OverrideState: 0 + m_Value: 1 + ozoneMinimumAltitude: + m_OverrideState: 0 + m_Value: 20000 + ozoneLayerWidth: m_OverrideState: 0 - m_Value: 8 + m_Value: 20000 groundTint: m_OverrideState: 0 m_Value: {r: 0.4, g: 0.25, b: 0.15, a: 1} @@ -680,10 +733,16 @@ MonoBehaviour: horizonZenithShift: m_OverrideState: 0 m_Value: 0 - m_SkyVersion: 1 + m_SkyVersion: 2 m_ObsoleteEarthPreset: m_OverrideState: 0 m_Value: 1 + planetaryRadius: + m_OverrideState: 0 + m_Value: 6378100 + planetCenterPosition: + m_OverrideState: 0 + m_Value: {x: 0, y: -6378100, z: 0} --- !u!114 &8971491440289872586 MonoBehaviour: m_ObjectHideFlags: 3 @@ -697,6 +756,7 @@ MonoBehaviour: m_Name: HDShadowSettings m_EditorClassIdentifier: active: 1 + interCascadeBorders: 1 maxShadowDistance: m_OverrideState: 1 m_Value: 1000 diff --git a/Runtime/White.mat b/Runtime/White.mat index 33c5ee0..2adf06d 100644 --- a/Runtime/White.mat +++ b/Runtime/White.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: - version: 12 + version: 13 hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: @@ -25,11 +25,11 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: White m_Shader: {fileID: 4800000, guid: c4edd00ff2db5b24391a4fcb1762e459, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] m_InvalidKeywords: - - _DISABLE_SSR_TRANSPARENT - _DOUBLESIDED_ON - - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 1 @@ -38,6 +38,7 @@ Material: disabledShaderPasses: - DistortionVectors - MOTIONVECTORS + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -154,6 +155,8 @@ Material: - _AlphaCutoffPrepass: 0.5 - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 + - _AlphaRemapMax: 1 + - _AlphaRemapMin: 0 - _AlphaSrcBlend: 1 - _AlphaToMask: 0 - _AlphaToMaskInspectorValue: 0 @@ -238,15 +241,15 @@ Material: - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - _StencilRef: 0 - - _StencilRefDepth: 0 + - _StencilRefDepth: 1 - _StencilRefDistortionVec: 4 - _StencilRefGBuffer: 10 - - _StencilRefMV: 32 + - _StencilRefMV: 33 - _StencilWriteMask: 6 - - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDepth: 9 - _StencilWriteMaskDistortionVec: 4 - _StencilWriteMaskGBuffer: 14 - - _StencilWriteMaskMV: 42 + - _StencilWriteMaskMV: 43 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -291,3 +294,4 @@ Material: - _UnlitColor: {r: 1, g: 1, b: 1, a: 1} - _UnlitColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/package.json b/package.json index ddbf6d0..208c1ae 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "com.wurwander.trees", - "version": "1.0.0", + "version": "1.0.1", "displayName": "Trees", "description": "Provides a way to download tree positions from boomenregister.nl" - "unity": "2021.3", + "unity": "2023.3", "keywords": [ "utility", "library" @@ -16,6 +16,6 @@ "type": "sample", "hideInEditor": false, "dependencies": { - "com.unity.render-pipelines.high-definition": "12.1.7" + "com.unity.render-pipelines.high-definition": "17.0.2" } } \ No newline at end of file -- GitLab